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って違いがそこまでないので、どちらを使えばいいのか迷うのですが、それって私だけでしょうか...