• ベストアンサー

Recordsetオブジェクトに取り込んだレコードの件数の数え方

ExcelVBAでAccessのデータベース操作を行っています。 Recordsetオブジェクトに取り込んだレコードの件数を数えたいのですが、 VBAでどのように書いたらよいのでしょうか。 フィールド数の場合は(myRecSet:Recordsetオブジェクトの変数)、 myRecSet.Fields.Count ' のように書けばことはわかるのですが。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは VBのヘルプ(MSDN)でRecordCountを調べたら RecordCount プロパティは、前方スクロール タイプのカーソルでは -1 を返し、静的カーソルまたはキーセット カーソルでは実際の数を返し、動的カーソルではデータ ソースによって -1 または実際の数を返します。 との事です。なんか状況によっては-1になる場合があるみたいですね。 確実に件数を求めるのでしたら、事前に "select count(*) as カウント from テーブル where 条件" というようなSQLを静的(adOpenStatic)でオープンし カウントを調べた方がよいかと存じます 頑張ってください

takaandhiro
質問者

お礼

ありがとうございました。 またよろしくお願いします。

その他の回答 (2)

回答No.2

最初にレコードセットのカーソルタイプを myRecSet.CursorType=adOpenStatic のように設定してもだめですか。

takaandhiro
質問者

お礼

ありがとうございました。 ADOは本を読んでも分からないことが多いので、また教えて下さい。

回答No.1

ADOの環境では、 myRecSet.MoveLast myRecSet.RecordCount ←これでレコード数が取れた気がします。 myRecSet.MoveFirst 違っていたらごめんなさい。

takaandhiro
質問者

お礼

ご回答ありがとうございます。 早速、Recordcountを試してみました。 しかし、取得した値が「-1」となってしまいましたが、 これはどういうことなのでしょうか? よろしければ教えてください。

関連するQ&A