Microsoft Access 掲示板

RecordCountが-1になる ※Do Until myRS.EOFで回すと3件ある

2 コメント
views
4 フォロー

ご存じならご回答願います。

下記コードを実行すると、RecordCountが-1になります。
Do Until myRS.EOFで回すと3件あるのですが。。
データの中身も問題なくあります。
RecordCountで3を取得できる設定をご存じないでしょうか?

    Dim myDB As Object                   'ADOコネクション用オブジェクトの宣言
    Set myDB = CurrentProject.Connection '現在開いているデータベースへ接続
    Dim com As Object
    Set com = CreateObject("ADODB.Command")

    Dim myRS As Object 'レコードセット用変数宣言
    Set myRS = CreateObject("ADODB.RecordSet") 'ADOレコードセットオブジェクトを作成
    myRS.CursorType = adOpenStatic
    myRS.LockType = adLockOptimistic
    myRS.CursorLocation = adUseClient

    With com
        .ActiveConnection = myDB
        .CommandText = "Q_Test"
        .CommandType = 2          
        .Parameters.Refresh
        .Parameters("test") = "test"
        Set myRS = .Execute
    End With

TOMO
作成: 2022/09/25 (日) 21:26:08
通報 ...
1

下記が参考になりませんか。

ADO Recordset で RecordCount プロパティが -1 を返す場合 | ちびrobo

上記でだめなら、myRS.MoveLast で最終レコードへ移動してから取得するとか。

ただ、レコード数を取得したいだけなら、DCount関数で取得すれば1行ですみます。

2
りんご 2022/09/27 (火) 08:59:00 c564b@0e907

ご存じならご回答願います。

 存じているという回答ではないので、最初に謝っておきます、すみません。
 特に問題が見当たらないので、微妙に設定を変えながら試行錯誤を繰り返すしかないかと思います。例えば、パラメータ無しのサンプルを作って試したり、SQL指定にしてみたり。