- ベストアンサー
Recordsetオブジェクトに取り込んだレコードの件数の数え方
ExcelVBAでAccessのデータベース操作を行っています。 Recordsetオブジェクトに取り込んだレコードの件数を数えたいのですが、 VBAでどのように書いたらよいのでしょうか。 フィールド数の場合は(myRecSet:Recordsetオブジェクトの変数)、 myRecSet.Fields.Count ' のように書けばことはわかるのですが。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは VBのヘルプ(MSDN)でRecordCountを調べたら RecordCount プロパティは、前方スクロール タイプのカーソルでは -1 を返し、静的カーソルまたはキーセット カーソルでは実際の数を返し、動的カーソルではデータ ソースによって -1 または実際の数を返します。 との事です。なんか状況によっては-1になる場合があるみたいですね。 確実に件数を求めるのでしたら、事前に "select count(*) as カウント from テーブル where 条件" というようなSQLを静的(adOpenStatic)でオープンし カウントを調べた方がよいかと存じます 頑張ってください
その他の回答 (2)
- smart600cc
- ベストアンサー率39% (97/245)
最初にレコードセットのカーソルタイプを myRecSet.CursorType=adOpenStatic のように設定してもだめですか。
お礼
ありがとうございました。 ADOは本を読んでも分からないことが多いので、また教えて下さい。
- smart600cc
- ベストアンサー率39% (97/245)
ADOの環境では、 myRecSet.MoveLast myRecSet.RecordCount ←これでレコード数が取れた気がします。 myRecSet.MoveFirst 違っていたらごめんなさい。
お礼
ご回答ありがとうございます。 早速、Recordcountを試してみました。 しかし、取得した値が「-1」となってしまいましたが、 これはどういうことなのでしょうか? よろしければ教えてください。
お礼
ありがとうございました。 またよろしくお願いします。