- ベストアンサー
アクセスADOレコードの件数がおかしい
- アクセスADOでクエリの行数を取得する方法について質問です。
- クエリの結果が常に12行となっていて、正しい行数が取得できません。
- DCount関数では正しい結果が表示されるのに、ADOではおかしくなっています。何が原因なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
クエリの内容が伏せられた状態なので、想像するしかないのですが 再現を含め以下に(違っていたらスルーしてください) テーブル「★★」が以下の様だと仮定します。 (「an」オートナンバ、「F1」テキスト型) an F1 1 ABCD 2 BCDE 3 CDEF 4 DEFG 5 EFGH クエリ「Q_★★」を以下とした時の表示は、 SELECT an, F1 FROM ★★ WHERE F1 Like '*C*' ORDER BY an; an F1 1 ABCD 2 BCDE 3 CDEF VBA で以下を記述し、最終の i、j の値を確認すると、i = 3、j = 0 Public Sub test() Dim rs As New ADODB.Recordset Dim i As Long, j As Long i = DCount("*", "Q_★★") rs.Source = "SELECT * FROM Q_★★;" rs.Open , CurrentProject.Connection, adOpenStatic, adLockOptimistic j = rs.RecordCount rs.Close Debug.Print i, j End Sub クエリで指定していたワイルドカードは "*" ADO でのワイルドカードは "%" ADO でクエリを指定した場合、内容を ADO 解釈する様です。 DAO でも ADO でも、クエリ「Q_★★」を使いたい場合、 (私はやりませんが)内容を以下に変更した「Q_▲▲」を対象にすると SELECT an, F1 FROM ★★ WHERE (F1 Like '*C*') OR (F1 Like '%C%') ORDER BY an; Public Sub test2() Dim rs As New ADODB.Recordset Dim i As Long, j As Long i = DCount("*", "Q_▲▲") rs.Source = "SELECT * FROM Q_▲▲;" rs.Open , CurrentProject.Connection, adOpenStatic, adLockOptimistic j = rs.RecordCount rs.Close Debug.Print i, j End Sub 最終の i、j の値を確認すると、i = 3、j = 3
お礼
ご回答ありがとうございます。
お礼
ご回答ありがとうございます。