
アクセス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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
【Access2003 VBA】クエリをエ...
-
ACCESS テーブル内の列...
-
access追加クエリ実行時の重複...
-
EXCELの外部データ取得ができない
-
yes/no型のチェックができない...
-
ACCESSのフィールドの表示順が...
-
Webクエリを使ってもページを表...
-
Access 複数のクエリの結果を...
-
アクセスのレベルアップ方法
-
Access2000で抽出したデータに...
-
Accessで複数(200件程)の置換
-
AccessでSQL結果を直接csvに書...
-
Excel VBAでWebクエリ更新
-
ACCESS 長い数字のクエリをする...
-
ログイン画面後のページの表取...
-
Accessでユニオンクエリを作成...
-
Excel「外部データの取り込み」...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
EXCELの外部データ取得ができない
-
access追加クエリ実行時の重複...
-
Access 複数のクエリの結果を...
-
yes/no型のチェックができない...
-
AccessでSQL結果を直接csvに書...
-
ログイン画面後のページの表取...
-
ACCESSのフィールドの表示順が...
-
アクセスで空白がグループ化さ...
-
Access2000で抽出したデータに...
-
Accessで進行状況インジケータ...
-
Accessでユニオンクエリを作成...
-
Access複数のクエリをExcelの1...
-
ACCESSで追加クエリを連続実行...
-
Accessで複数(200件程)の置換
-
Webクエリで取り込みができない...
-
アクセス ADO レコードの件数...
-
Access 特定の条件下で、メッ...
-
ACCESS テーブル内の列...
-
Access 0で除算(並べ替...
おすすめ情報