
アクセスADOでクエリの行数を取得したいのですが
クエリが200行でも100行でも必ず12が返ります。
クエリ1は、一度12行の時にadoで数を取得し、その時は、正しく12が返ったのですが、
行数が変わっても12が返ります。
コードは、
Sub Sample()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
rs.Open "SELECT * FROM クエリ1", cn, adOpenStatic, adLockPessimistic
Debug.Print rs.RecordCount
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
です。
Debug.Print DCount("*", "クエリ1")
だと、正しいレコード数が取得されるのですが、ADOだとおかしいです。
クエリ1のSQL文は、
SELECT Q_作業用.*
FROM Q_作業用;
のように、別のクエリを持ってきています。
何が原因なのでしょうか?
よろしくお願いします。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
ログイン画面後のページの表取...
-
ACCESS テーブル内の列...
-
ACCESSのフィールドの表示順が...
-
レコード件数をファイル名にし...
-
Accessでユニオンクエリを作成...
-
アクセスのクエリ抽出の仕方に...
-
yes/no型のチェックができない...
-
ACCESSでメッセージにクエリ結...
-
Access 複数のクエリの結果を...
-
Access複数のクエリをExcelの1...
-
Accessで複数(200件程)の置換
-
Excel「外部データの取り込み」...
-
EXCELの外部データ取得ができない
-
AccessでSQL結果を直接csvに書...
-
【Access2003 VBA】クエリをエ...
-
ACCESSでの文字数カウント
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
EXCELの外部データ取得ができない
-
Access 複数のクエリの結果を...
-
アクセスで空白がグループ化さ...
-
yes/no型のチェックができない...
-
access追加クエリ実行時の重複...
-
ログイン画面後のページの表取...
-
AccessでSQL結果を直接csvに書...
-
ACCESSのフィールドの表示順が...
-
Access複数のクエリをExcelの1...
-
Accessで進行状況インジケータ...
-
Accessのエラーについてです。
-
Accessの組込み関数について
-
Accessでユニオンクエリを作成...
-
Accessで複数(200件程)の置換
-
accessである「キーワードの種...
-
ACCESS レポートをテーブルへ
-
Excel VBAでWebクエリ更新
-
アクセス ADO レコードの件数...
-
ACCESS テーブル内の列...
おすすめ情報