Access VBA 入門講座

Homeフォームよりレコードを検索するフォームよりレコードを検索する

DoCmdオブジェクトのFindRecordメソッドを使用してフォームよりレコードを操作する方法を説明します。


DoCmd.FindRecord FindWhat [,Match] [,MatchCase] [,Search] 

        [,SearchAsFormatted] [,OnlyCurrentField] [,FindFirst]
							

FindRecordメソッドの引数は以下の通りです。引数を省略した場合は規定値が設定されます。

引数説明
FindWhat検索データを指定します。
Match検索条件を指定します。
acAnyWhere部分一致
acEntireフィールド全体と一致(規定値)
acStartフィールドの先頭と一致
MatchCase大文字・小文字区別
True大文字・小文字を区別する
False大文字・小文字を区別しない(規定値)
Search検索方向を指定します。
acUpカレントレコードから先頭のレコードへ検索
acDownカレントレコードから末尾のレコードへ検索
acSearchAll全てのレコードから検索(規定値)
SearchAsFormatted書式
True
False(規定値)
OnlyCurrentField検索対象フィールド
acAll全てのフィールドを対象
acCurrentカレント フィールドだけを対象(規定値)
FindFirst検索開始位置
True先頭レコードから検索(規定値)
Falseカレントレコードから検索

以下の例では、社員名簿より氏名に"田"が含まれているレコードを検索します。なおFindRecordメソッドでは、事前にGoToControlメソッドやSetFocusメソッドを使って、検索の対象となるコントロールにフォーカスを移動しておく必要があります。


Private Sub 検索_Click()
    
    DoCmd.GoToControl "氏名"

    DoCmd.FindRecord "田", acAnywhere

End Sub