#497 レコード検索用テキストボックスの例 フォーム、VBA

「テキストボックスに入力された文字列をデータに含むレコードを検索し、該当するその先頭レコードにカレントレコードを移動させる」という機能の一例です。

それにはいくつかの方法がありますが、ここではDoCmdオブジェクトの「SearchForRecord」メソッドを使った方法を紹介します。


  1. オートフォームツールやフォームウィザードを使うなどして、テーブルなどのデータを表示する通常のフォームを作成します。

  2. そのフォームにテキストボックスコントロールとコマンドボタンコントロール2つを配置します。
    前者は検索文字を入力するためのもので、ここでは名前を”txt商品名検索文字”とします。
    後者は検索処理を実行するためのもので、名前を”cmd検索”、および”cmd次へ”とします。

  3. 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メソッドでは次のような順番で引数を指定します。

    1. オブジェクトの種類(フォームやクエリなどの対象オブジェクトの種類を組み込み定数で指定、そのイベントプロシージャのあるフォーム自身を対象とする場合は省略可)

    2. オブジェクト名(そのイベントプロシージャのあるフォーム自身を対象とする場合は省略可)

    3. 検索方法を指定する組み込み定数を指定(acFirst:先頭、acNext:次、など)

    4. 検索条件の文字列を、SQLステートメントのWHERE句と同様の形式で指定

実行例:

■テキストボックスに検索文字を入力
テキストボックスに検索文字を入力

■[検索]ボタンクリック後
[検索]ボタンクリック後

■[次へ]ボタンクリック後
[次へ]ボタンクリック後
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved