• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス ADO レコードの件数がおかしい)

アクセスADOレコードの件数がおかしい

このQ&Aのポイント
  • アクセスADOでクエリの行数を取得する方法について質問です。
  • クエリの結果が常に12行となっていて、正しい行数が取得できません。
  • DCount関数では正しい結果が表示されるのに、ADOではおかしくなっています。何が原因なのでしょうか?

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

クエリ1に抽出条件があるのでは

OPYSNRJD
質問者

お礼

ご回答ありがとうございます。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

クエリの内容が伏せられた状態なので、想像するしかないのですが 再現を含め以下に(違っていたらスルーしてください) テーブル「★★」が以下の様だと仮定します。 (「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

OPYSNRJD
質問者

お礼

ご回答ありがとうございます。

関連するQ&A