2020-02-05

ADOで取得したレコードセットのデータをさらに絞り込む方法(Filterプロパティ)

ADOを使って取得したデータを、Filterプロパティを使って、さらにデータを絞り込む方法についてです。

コード

最初に取得した商品データから指定した価格帯(500円以下)のデータに絞り込むサンプルコードは以下の通り。


Dim cn As ADODB.Connection
Dim rs As New ADODB.Recordset

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset

Dim sql As String
sql = "SELECT * FROM T_商品"

rs.Open sql, cn, adOpenStatic, adLockOptimistic

If rs.EOF = False Then
    rs.Filter = "[価格] <= 500"
    Do Until rs.EOF
        Debug.Print rs![商品名]
        rs.MoveNext
    Loop
End If

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

以前、仕事で携わった時はFilter設定後にもう一度「Open」していた気がしたので調べたら、そのやり方はDAOの方でした。

普段はとりあえずADOを使うようにしてますが、ADOとDAOって違いがそこまでないので、どちらを使えばいいのか迷うのですが、それって私だけでしょうか...

参考リンク

Access】関連記事