Chapter5-7 レコードの検索

レコードの検索

レコードセット内を検索するためには、Find系メソッドを使います。


条件に一致するレコードが見つかったかどうかは、Recordsetオブジェクトの「NoMatch」プロパティで判定します(見つからない場合はこのプロパティに”True”が代入されます)。

なお、一般的にはできる限りクエリやSQL文の段階でデータを絞り込んでおいた方が効率的に処理できます。



■タイトルに”入門”という文字を含むレコードを列挙する例
Dim dbs As Database
Dim rst As Recordset
Dim strCriteria As String

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tbl書籍情報", dbOpenDynaset)
With rst
  strCriteria = "タイトル Like '*入門*'"
  .FindFirst strCriteria
  Do Until .NoMatch
    Debug.Print !ISBN, !タイトル, !著者, !発行日, !価格
    .FindNext strCriteria
  Loop
  .Close
End With


プログラムのポイント:
  • まず、検索条件を組み立てます。これはSQL分のWhere句に相当する文字列です。→ここではstrCriteriaという変数にそれを代入しています

  • 検索条件を引数として、FindFirstメソッドを実行します。これによって最初の該当レコードが検索されます。見つかるとレコードが移動します。それに対して更新や削除等の操作ができます。

  • 続いて、FindNextメソッドを実行するたびに、順次、次の該当レコードが検索されます。

  • NoMatchプロパティがTrueになるまでループを回すことで、検索条件に一致するすべてのレコードを列挙することができます。

  • OpenRecordsetメソッドで開く対象がテーブルの場合、Find系メソッドを使うためには、”dbOpenDynaset”または”dbOpenSnapshot”を引数として指定する必要があります。
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved