#431 | 画面でフィルタリングされたデータを走査する方法 | フォーム、VBA | |
Accessの機能の1つとして、画面上に表示されたデータにフィルタを掛けることができます。しかしユーザーがフィルタを掛けた場合、画面上に表示されているレコードと、そのフォームのレコードソースとなっているテーブルやクエリのレコードとは異なるものとなってしまいます。 そうようなとき、VBAでフォームのRecordsetCloneオブジェクトを扱うことによって、フィルタリングされたデータ、すなわち画面上に実際に表示されているレコードだけを走査することができます。 次のサンプルコードでは、画面上に表示されているレコードを先頭から順番に走査し、その内容をイミディエイトウィンドウに出力しています。レコードセットを開いたりレコード移動したりするプログラムは通常のRecordsetオブジェクトを扱う場合と同じです。留意点として、RecordsetCloneの場合は、開いた直後に必ずしもカレントレコードが先頭にあるとは限りませんので、あらかじめMoveFirstメソッドによって先頭に戻しておくようにします。 Private Sub cmdデータ取得_Click() '[データ取得]ボタンクリック時 Dim rst As Recordset Set rst = Me.RecordsetClone With rst .MoveFirst Do Until .EOF Debug.Print !商品コード, !商品名 .MoveNext Loop .Close End With End Sub
|
|||
|
Copyright © T'sWare All rights reserved |