dポイントプレゼントキャンペーン実施中!

お世話になります。

ACCESSで管理ソフトウェアを作成しているのですが、
ある配列変数 data(1 to 40)があり、
ADOでデータベースから Where句を使い、必要なデータを引き出し変数へ入れています。

引き出しているレコードの、レコードカウント数を変数に入れたいのですが、どうすればいいのでしょうか?

RecordCountでは引き出したレコードの最大数をとってしまうためできませんでした。

よろしくお願いします。

A 回答 (5件)

単純に、カウンタ用の変数を用意すればよいのでは?


以下のような感じです。

Dim lngRecordCount as Long
lngRecordCount = 0

Do Until rs.EOF
  (必要なデータかどうか判定)
  If (必要なデータなら) Then
    lngRecordCount = lngRecordCount + 1
    data(lngRecordCount) = rs!XXXX
  End If
  rs.moveNext
Loop
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

やはり、変数を用いてカウントを取らないといけないのでしょうか?

お礼日時:2006/06/01 14:58

行番号はレコード数と同じと考えてください。


例では新規にレコードを作成する際、行番号が順番にふられます。
VBA側でカウントすることもできますが、できればサーバー側
でできるようにしたほうが処理は早いと思います。
    • good
    • 0

>RecordCountでは条件に見合うデータ数をとってしまっていてレコードセットのカウント数が取得できなかったため



レコードセットにしてしまった後はループさせてカウントするしかないと思いますが。
もう一つレコードカウントを取りたい条件にあったSQLを発行して先にカウントさせておくとか。
    • good
    • 0

>引き出しているレコードのレコードカウント数を変数に入れたい


変数名 = Me.Recordset.RecordCount
で変数に代入できませんか。
>RecordCountでは引き出したレコードの最大数をとってしまうためできませんでした
この辺が良く理解できていませんが・・。
引き出しているレコードのレコードカウント数とRecordCountで取得できるレコード数は一緒ではないですか?
開いているレコードセットからさらに絞り込んでレコード数をカウントするという事なのでしょうか。
別の抽出条件を付けてレコードセットを取得してカウントすれば良いのでは?
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

Do Untilを使用し、条件に見合うデータを抽出しているのですが、RecordCountでは条件に見合うデータ数をとってしまっていてレコードセットのカウント数が取得できなかったためです。

お礼日時:2006/06/01 14:58

ADO ということは 接続先は MSDEとかOracle あるいはSQL Server とかいろいろあります。


また、ACCESS のバージョンは何を使用しているかによりかなり違ってきます。
仮にMSDE(SQL SERVER2000)  とすれば
IDENTITY用いた方法があります。
例:
 SELECT
(IDENTITY(int, 1, 1) AS 行番号,
ユーザーTBL.*
INTO #WKユーザーTBL.*
FROM ユーザーTBL
Where あなたが書いた 条件
ORDEr BY あなたが書いた順番

あとは 作成された#WKユーザーTBL を接続して
読み込めば 行番号がわかります。

最新の MS SQL Server 2005 では 新しく
SQL の関数で row_number が追加されました。
詳細は マイクロソフトの公式ページ MSDN ライブラリ あるいは
BooksOnline などを閲覧してください。
SQL SERVER 2005 Expressは無料でダウンロードできます。
例:
 SELECT ROW_NUMBER()
OVER (ORDER BY あなたが指定するレコードKey) 
AS 行番号,
FROM ユーザーTBL
Where あなたが書いた 条件
ORDEr BY あなたが指定するレコードKey

参考程度ですががんばって勉強してください。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
環境はACCESS + SQL Serverです。

行番号ではなく、読み込んだレコード数をループ中にいくつか?が知りたいです。(><)

お礼日時:2006/06/01 14:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す