マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
別の検索方法
上のように新たに検索用のテキストボックスとボタンを作成しました。
「検索文字列」のボタンに書いたVBAは下記です。
Private Sub コマンド50_Click()
Dim v As Variant 変数vの宣言
Me.氏名.SetFocus 氏名にフォーカスを当てる
v = Me.テキスト48 変数vにテキストボックスの内容を格納する
Me!テキスト48 = Null 一旦テキストボックスの内容を消去する
DoCmd.FindRecord v, acAnywhere, False, acSearchAll, False, acAll, False ここで検索
Me!テキスト48 = v テキストボックスの内容を戻す
End Sub
上記のような流れです。
仮に検索する氏名に「津島」と入力して「検索文字列」ボタンを押してください。
上のように「津島 紳二」が検索され表示されました。
VBAの内容は理解できますか。
一旦テキストボックスの内容を消去していますね。
(Me!テキスト48 = Null)これが残っていると、ここを検索してしまうので、
一旦消去しています。
後は「DoCmd.FindRecord v, acAnywhere, False,
acSearchAll, False, acAll, False」この部分ですね。
【FindRecordの構文】
DoCmd.FindRecord FindWhat [,Match] [,MatchCase]
[,Search] [,SearchAsFormatted] [,OnlyCurrentField] [,FindFirst]
・FindWhat・・・検索データを指定します。
・[,Match]・・・検索条件を指定します。
acAnyWhere・・・部分一致
acEntire・・・フィールド全体と一致(規定値)
acStart・・・フィールドの先頭と一致
・[,MatchCase]・・・大文字・小文字の区別
True・・・区別する
False・・・区別しない(規定値)
・[,Search]・・・検索方法を指定します。
acUp・・・カレントレコードから先頭のレコードへ検索
acDown・・・カレントレコードから末尾のレコードへ検索
acSearchAll・・・全てのレコードから検索(規定値)
・[,SearchAsFormatted]・・・書式
True・・・
False・・・規定値
・[,OnlyCurrentField]・・・検索対象フィールド
acAll・・・全てのフィールドを対象
acCurrent・・・カレントフィールドだけを対象(規定値)
・[,FindFirst]・・・検索開始位置
True・・・先頭レコードから検索(規定値)
False・・・カレントレコードから検索
上記のような内容です。
「DoCmd.FindRecord v, acAnywhere, False, acSearchAll,
False, acAll, False」ここは上記の構文に則り正確に記載していますが、
「DoCmd.FindRecord v, acAnywhere,,,, acAll」
このように省略しても大丈夫です。
【このカテゴリーの最新記事】