こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLとDAOで取得するレコード件数が違う?

Access2007でSQLで実行した結果と、レコードセットで取得した件数が一致せずに困っています。
いろいろ調べてはみたのですが、なぜかわかりません。
よろしくお願いします。

○TableA 型
Code1 数値型(主キー)
Text テキスト型
Code2 数値型

○TableA データ
Code1 Text Code2
111 AAA 10
112 BBB 15
113 CCC 20
114 DDD 20

○VBAコード
Dim strSQL As String
Dim db As DAO.Database
Dim rstFind As DAO.Recordset
strSQL = "SELECT * FROM TableA Where Code2 = 20"
Set db = CurrentDb()
Set rstFind = db.OpenRecordset(strSQL, dbOpenSnapshot)
MsgBox rstFind.RecordCount

この状態でSQLビューから実行すると2件が抽出され、上記VBAを実行するとMsgBoxには「1」と表示されます。

投稿日時 - 2009-12-06 20:29:53

QNo.5503147

すぐに回答ほしいです

質問者が選んだベストアンサー

開いて直ぐ、RecordCountが取得できるのは、dbOpenTableだけで、
dbOpenDynasetやdbOpenSnapshotは、RecordSetの最後へ移動してから取得だったかと。


If rstFind.EOF = False Then
  rstFind.MoveLast
  Msgbox rstFind.RecordCount
End If


以上です。
 

投稿日時 - 2009-12-06 20:58:43

お礼

なるほど!
回答ありがとうございます。

投稿日時 - 2009-12-07 15:54:04

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問