Access VBA の DoCmd.FindRecord
および DoCmd.FindNext
は、現在開いているフォーム・データシート・レポート上のレコード検索を自動的に行うためのメソッドです。
目次
🔹 DoCmd.FindRecord
の基本構文と引数
DoCmd.FindRecord(FindWhat, Match, MatchCase, Search, SearchAsFormatted, OnlyCurrentField, FindFirst)
引数名 | 型 | 説明 |
---|---|---|
FindWhat | String | 検索する値 |
Match | AcFindMatch (省略可) | "acEntire" , "acStart" , "acAnywhere" |
MatchCase | Boolean (省略可) | 大文字・小文字を区別するか(True = 区別) |
Search | AcSearchDirection (省略可) | "acSearchAll" , "acSearchUp" , "acSearchDown" |
SearchAsFormatted | Boolean (省略可) | 書式適用後の値で検索するか(True = 書式あり) |
OnlyCurrentField | Boolean (省略可) | 現在のフィールドのみに検索を限定するか |
FindFirst | Boolean (省略可) | 最初の一致を探すかどうか(True = 最初から検索) |
✅ 使用例1:フォームで「Tokyo」を検索
DoCmd.FindRecord "Tokyo", acAnywhere, False, acSearchAll, False, False, True
✅ 使用例2:現在のフィールド内で完全一致を検索(大文字・小文字区別なし)
DoCmd.FindRecord "YAMADA", acEntire, False, acSearchDown, False, True, True
🔹 DoCmd.FindNext
の基本構文
DoCmd.FindNext
このメソッドは、前回の FindRecord
実行時の条件を保持して、次の一致を検索します。引数はありません。
✅ 使用例
DoCmd.FindNext
✅ 補足ポイント
FindRecord
で検索を実行 → 一致レコードに移動。FindNext
は、同じ検索条件で次に一致するレコードを探す。- 通常は フォームビューかデータシートビューで使用。
- レポートビューでは基本的に使えません(読み取り専用)。