ADOのFilterプロパティを利用してレコードを絞り込むには
RecordsetオブジェクトのFilterプロパティを使用してレコードを絞り込む方法を説明します。
|
recordset.Filter = Criteria |
Criteriaには、レコードを絞り込むフィルタ条件を指定します。フィルタ条件には、SQLのWhere句のようにフィールド名、比較演算子、値を指定します。複数のフィールドを指定するときは、AND、ORで結合します。
rs.Filter “都道府県=’東京都’ “
rs.Filter “フリガナ Like ‘フ%’ “
rs.Filter “性別=’男性’ And “年齢=25”
|
|
図 Filterプロパティでレコードを絞り込むサンプル
Access + Webのダウンロードにサンプルが収録されています。ダウンロードの目次を表示させたら、「RecordsetオブジェクトのFilterプロパティを利用した手法」をクリックしてください。Internet Explorerの左側のフレームには、ASPのソースが表示されます。右側のフレームには、実行結果が表示されます。
図の行21-24では、Access 2000のデータベースado.mdbを接続するための処理を行っています。
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & server.MapPath("webdb/ado.mdb")
set cnn = server.CreateObject("adodb.connection")
cnn.open strConnection
行26では、Recordsetのインスタンスを生成しています。
set rs = server.CreateObject("adodb.recordset")
行27-39のWith…End Withでは、Recordsetのオブジェクトを参照しています。行28では、Openメソッドでado.mdbの得意先テーブルを開いています。行29では、Filterプロパティにフィルタ条件「都道府県=’東京都’」を指定してレコードを絞り込んでいます。行30では、RecordCountプロパティを表示しています。得意先テーブルには、東京都の得意先が7件存在することが解ります。
.Open "得意先;", cnn, adOpenKeyset, adLockReadOnly
.Filter = "都道府県='東京都'"
response.Write "Record Count:" & .RecordCount & "<br>"
è Record Count: 7
行31-37のdo until…loopでは、Filterプロパティで絞り込んだレコードセットをブラウザに表示させています。行32-34では、Fieldsプロパティにフィールド名を指定して得意先コード、得意先名、都道府県をブラウザに送信しています。行35では、HTMLの<br>タグをブラウザに送信して改行しています。行36では、MoveNextメソッドで次のレコードに移動しています。カレントが最終レコードのときMoveNextメソッドを実行するとEOFが報告されます。行38では、Closeメソッドでレコードセットを閉じています。
do until .EOF
response.Write .Fields("得意先コード").value & vbTab
response.Write .Fields("得意先名").value & vbTab
response.Write .Fields("都道府県").value
response.Write "<br>"
.MoveNext
loop
行40では、ConnectionオブジェクトのCloseメソッドでデータベースを切断しています。行41-42では、Server.CrateObjectメソッドで生成したRecordsetオブジェクトとConnectionオブジェクトを解放しています。