Dim con As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim DNSname$,USERname$,PASSw$,cnt&
Set con = CreateObject("ADODB.Connection")
con.Open "DSN=" & DNSname & "; UID= " USERname & "; PWD=" & PASSw
Set rsData = New ADODB.Recordset
rsData.Open SQL, con
Do While Not rsData.EOF
rsData.MoveLast
cnt=rsData.RecordCount
rsData.First
LOOP
といいコードで総レコード数が取得できるかなとやってみたところ、rsData.MoveLastのところで、「行セットは逆フェッチをサポートしていません」というエラーが出ました。
なにかほかの方法で総レコード数を取得する方法があるのでしょうか?
自分で他に試したことは、rsData.EOFまでrsData.MoveNextでもっていきrsData.EOF-1レコードの.RecordCountを取得すしようと試みましたが、最後のレコードまできても.RecordCountは「-1」のまま変化しませんでした。レコードセットの呼び込み方が不味いのでしょうか?
No.4ベストアンサー
- 回答日時:
#2 です。
Set con = CreateObject("ADODB.Connection")
con.CursorLocation = adUseClient
con.Open "DSN=" & DNSname & "; UID= " USERname & "; PWD=" & PASSw
としてみたらどうなりますか?
>con.CursorLocation = adUseClient
の行を追加したら取得できました。
レコードセットのほうになにか設定値があるのかと色々探していましたが、オブジェクトのだったんですね。ありがとうございました。
No.3
- 回答日時:
私の作った7件の社員3テーブルにたいし
(質問のコードを少し簡略化してますが)
Sub test02()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim DNSname$, USERname$, PASSw$, cnt&
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "社員3", cn, adOpenKeyset, adLockOptimistic
cnt = rs.RecordCount
MsgBox cnt
rs.MoveFirst
Do Until rs.EOF
MsgBox rs!氏名
rs.MoveNext
Loop
End Sub
で 7 と出ました。
====
rs.Open "社員3", cn, adOpenKeyset, adLockOptimistic
の adOpenKeyset, adLockOptimistic
を質問のように除くと、-1と出てうまくいかない。
ここが原因でしょう。
http://www.accessclub.jp/vbakaisetu/22.html
参照
この回答への補足
>Set cn = CurrentProject.Connection
部分のCurrentProjectで「変数が宣言されていません」とのエラーが出ましたので
Set con = CreateObject("ADODB.Connection")
にしてimogasiさんのコードを実行したところ(adOpenKeyset, adLockOptimisticはつけました)、cnt は「-1」でした。
CurrentProjectとはどのように宣言するのでしょうか?
No.1
- 回答日時:
con.Open "DSN=" & DNSname & "; UID= " USERname & "; PWD=" & PASSw
Set rsData = con.Execute("SELECT COUNT(*) FROM " & TableName)
MsgBox rsData.Fields(0).Value
のようにSQLで求められませんか? テストしたのはmdbでOracleでは試していませんが…
TableNameのところは置き換えてください
この回答への補足
rsData.Open SQL, conを無効にして
>Set rsData = con.Execute(
でも接続できレコードセットは取得できました。
しかし
>MsgBox rsData.Fields(0).Value
では、そのフィールドの内容が出るだけでレコード総数は求められませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
-
4
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
5
レコードが存在しなかった場合
Microsoft ASP
-
6
ADOで現在のレコードの次のレコードの値も取得
Access(アクセス)
-
7
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
8
ADOのRecordCountプロパティについて
その他(データベース)
-
9
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
10
ACCESSのエラーで困っています
Access(アクセス)
-
11
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
12
Access VBAでクエリーのレコード件数を取得したいのですが
その他(データベース)
-
13
ACCESSでの改行コード
その他(データベース)
-
14
「RunSQL」と「Execute」の違い
Access(アクセス)
-
15
SQLを連続発行する時の正しい(?)書き方は?
Visual Basic(VBA)
-
16
レコードセットの中身を配列に、そしてワークシートに。
Visual Basic(VBA)
-
17
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
18
YES/NO型の値
Excel(エクセル)
-
19
アクセス ADO レコードの件数がおかしい
Access(アクセス)
-
20
参照設定は2.8と6.0 6.1とどちらにチェッ
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードの波打ちを直す方法を...
-
これはミス、アグネス・チャン...
-
Yahoo!メールでSPFレコード DKI...
-
(C)は著作権、(R)は商標...
-
7インチ(CD?)って・・・
-
レコードにはあって、CDやYou T...
-
村下孝蔵氏の代表曲 『 初恋 』...
-
80年代のテレビ番組 ひょうきん...
-
アクセスのレポート、VBAで罫線...
-
自分だけのゲーム曲を収録した...
-
全銀フォーマットで使用する各...
-
レコードをCD化。店頭持ち込み...
-
音楽CDは何時から一般に普及...
-
エクセルからアクセスにデータ...
-
椎名恵 レコード今夜はエンジ...
-
両A面って?
-
エクセルで作った住所録をラベ...
-
シェルスクリプト 環境変数RS
-
可変のグローバルIPアドレスで...
-
差込印刷での条件指定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
7インチ(CD?)って・・・
-
レコードの波打ちを直す方法を...
-
(C)は著作権、(R)は商標...
-
Yahoo!メールでSPFレコード DKI...
-
自分だけのゲーム曲を収録した...
-
差込印刷での条件指定
-
Access クエリの結果が0件だっ...
-
【至急!】差し込み印刷を使用...
-
レコードをCD化。店頭持ち込み...
-
エクセルからアクセスにデータ...
-
マリア,マーテル グラッチェの...
-
可変のグローバルIPアドレスで...
-
VBAでレコードセットの総レコー...
-
音楽CDは何時から一般に普及...
-
ダークダックスのめざせモスクワ
-
レコードにはあって、CDやYou T...
-
ポールとポーラ
-
浜田 省吾さんの奥さんって
-
お教えください。 jimdo フリー...
-
20世紀少年について
おすすめ情報