●概要●
構文 expression.FindRecord(FindWhat, Match, MatchCase, Search,
SearchAsFormatted, OnlyCurrentField, FindFirst)
設定項目 内容
expression DoCmdオブジェクト[省略不可]
FindWhat 検索データを指定[省略不可]
Match 検索方法をAcFindMatchクラスの定数で指定[省略可能]
MatchCase 大文字小文字を区別するかを指定[省略可能]
Search 検索方向をAcSearchDirectionクラスの定数で指定[省略可能]
SearchAsFormatted 表示書式で検索するかどうかを指定[省略可能]
OnlyCurrentField カレントフィールドのみ検索するかどうかをAcFindFieldクラス
の定数で指定[省略可能]
FindFirst 先頭レコードから検索するかを指定[省略可能]
抽出条件を満たす最初のデータを検索します。引数に指定した文字列、数字、日付などを検索します。ワイルドカード文字を使用することもできます。引数には、検索方法を指定します。
・引数に指定できるワイルドカード文字
文字 説明 使用例→検索結果
* 任意の文字列 *ry→ry、try、dictionary 他
(文字数は問わない、0文字も可)
? 任意の1文字 ?ry→try、dry 他
# 任意の1文字の数字 5##8→5008、5598 他
[ ] []内の任意の1文字 a[sf]b→asb、afb
[ - ] -の前後の文字範囲内の任意の1文字 a[c-e]b→acb、adb、aeb
(範囲は昇順で指定)
[! ] []内の文字以外の任意の1文字 a[!gy]b→aab、abb、acb 他
・引数に指定する定数(AcFindMatchクラス)
定数 説明
acAnywhere フィールドの一部分と、検索文字列が一致(〜を含む)
acEntire フィールド全体が完全一致(〜と等しい)(既定値)
acStart フィールドの先頭側の文字列と検索文字列が一致(〜から始まる)
引数は、検索時に大文字と小文字を区別する場合にはTrue、大文字と
小文字を区別しない場合にはFalseを指定します。省略すると、既定値Falseを指定し
たこととなります。引数には、検索する方向を指定します。省略すると、
acSearchAllを指定したこととなります。
・引数に指定する定数(AcSearchDirectionクラス)
定数 説明
acDown 後方に検索
acSearchAll すべてのレコードを検索(既定値)
acUp 前方に検索
引数には、書式を有効にして検索したい場合True、そうでない場合Falseを指定します。たとえば、日付を検索する場合、条件に「02/7/24」と指定して、フィールドの書式にかかわらず2002年7月24日に対応する日付をすべて検索したいときに、Falseを指定します。引数を省略すると、Falseを指定したこととなります。引数には、カレントフィールドのデータだけを検索するか、すべてのフィールドのデータを検索するかを、次の表の定数で指定します。カレントフィールドだけを検索するほうが、実行速度が速くなります。省略すると、acCurrentを指定したこととなります。
・引数に指定する定数(AcFindFieldクラスの定数)
定数 説明
acAll すべてのフィールドを検索
acCurrent カレントフィールドのみを検索(既定値)
引数には、先頭のレコードから検索を開始する場合はTrueを、カレントレコードから検索を開始する場合はFalseを指定します。省略するとTrueを指定したこととなります。
●サンプル●
Sub FindRecordSample()
'[書籍フォーム]を開く
DoCmd.OpenForm "書籍フォーム"
'すべてのフィールドから「VBA」という文字を含むデータを検索
DoCmd.FindRecord "*VBA*", , , , , acAll
'DoCmd.FindRecord "VBA", acAnywhere, , , , acAll
'と記述しても同じ結果が得られます
End Sub