たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_ADOの利用_レコード操作その8【Recordset】【Filter】レコードの抽出

ADOでデータベースに接続し、Recordsetを使用して指定したレコードを抽出する記述

今回の記述に関する前情報

何を行うか

Recordsetで、指定のテーブルのレコードを指定の条件で抽出

利用時の書式

Recordsetのオブジェクト変数.Filter = "フィールド名1 条件1 And / Or フィールド名2 条件2 ........"


記述例における利用パーツ

ステートメント
  →Do Loop
・メソッド
  →Filter / MoveNext / Open / Close

注意点

解除する際には、Recordsetのオブジェクト変数.Filter = ""と記述する
代入する際には、全体的にダブルクォーテーションで囲むのをわすれない

【実践】指定のテーブルの指定のフィールドの値をFilterメソッドで抽出する記述例

カレントプロジェクトのデータベースに接続する場合の記述
テーブル「yubin_data_base」のフィールド「postcode」が「0600041」と「0600031」のレコードの
「postcode」「city」「addressline」の値をイミディエイトウィンドウに表示

▼取得対象テーブル「yubin_data_base」▼


▼記述例▼

Sub filter_currentdata()

Dim CNT As adodb.connection
Dim RST As adodb.Recordset
Set CNT = CurrentProject.connection
Set RST = New adodb.Recordset

RST.Open "yubin_data_base", CNT

RST.Filter = "postcode = '0600041' Or postcode = '0600031'"

Do Until RST.EOF
    Debug.Print RST("postcode"), RST("city"), RST("addressline")
    RST.MoveNext
Loop

RST.Close: CNT.Close
Set RST = Nothing: Set CNT = Nothing

End Sub



▼実行結果▼