ご存じならご回答願います。
下記コードを実行すると、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 = adUseClientWith com
.ActiveConnection = myDB
.CommandText = "Q_Test"
.CommandType = 2
.Parameters.Refresh
.Parameters("test") = "test"
Set myRS = .Execute
End With
下記が参考になりませんか。
ADO Recordset で RecordCount プロパティが -1 を返す場合 | ちびrobo
上記でだめなら、myRS.MoveLast で最終レコードへ移動してから取得するとか。
ただ、レコード数を取得したいだけなら、DCount関数で取得すれば1行ですみます。
存じているという回答ではないので、最初に謝っておきます、すみません。
特に問題が見当たらないので、微妙に設定を変えながら試行錯誤を繰り返すしかないかと思います。例えば、パラメータ無しのサンプルを作って試したり、SQL指定にしてみたり。