「テキストボックスに入力された文字列をデータに含むレコードを検索し、該当するその先頭レコードにカレントレコードを移動させる」という機能の一例です。
それにはいくつかの方法がありますが、ここではDoCmdオブジェクトの「SearchForRecord」メソッドを使った方法を紹介します。
- オートフォームツールやフォームウィザードを使うなどして、テーブルなどのデータを表示する通常のフォームを作成します。
- そのフォームにテキストボックスコントロールとコマンドボタンコントロール2つを配置します。
前者は検索文字を入力するためのもので、ここでは名前を”txt商品名検索文字”とします。
後者は検索処理を実行するためのもので、名前を”cmd検索”、および”cmd次へ”とします。
- 2つのコマンドボタンのクリック時イベントプロシージャに、それぞれ次のようなコードを記述します。
Private Sub cmd検索_Click()
DoCmd.SearchForRecord , , acFirst, "商品名 Like '*" & Me!txt商品名検索文字 & "*'"
End Sub
Private Sub cmd次へ_Click()
DoCmd.SearchForRecord , , acNext, "商品名 Like '*" & Me!txt商品名検索文字 & "*'"
End Sub
ここで、SearchForRecordメソッドでは次のような順番で引数を指定します。
- オブジェクトの種類(フォームやクエリなどの対象オブジェクトの種類を組み込み定数で指定、そのイベントプロシージャのあるフォーム自身を対象とする場合は省略可)
- オブジェクト名(そのイベントプロシージャのあるフォーム自身を対象とする場合は省略可)
- 検索方法を指定する組み込み定数を指定(acFirst:先頭、acNext:次、など)
- 検索条件の文字列を、SQLステートメントのWHERE句と同様の形式で指定
実行例:
■テキストボックスに検索文字を入力
■[検索]ボタンクリック後
■[次へ]ボタンクリック後
|