Accessでレコードの検索を行う場合、[検索と置換」ダイアログボックス表示して使用することは多いと思います。
この[検索と置換]ダイアログボックスを、ボタンをクリックして起動する方法を解説します。
この記事の目次
リボンの[検索]ボタン
検索ボタンはリボンの[ホーム]タブにあります。
Access2016では、これまでの双眼鏡アイコンから虫眼鏡に変わりました。
ショートカットキーは、[Ctrl]+[F]で同じです。
【Access2013】
【Access2016】
この検索ボタンを押した時に表示される[検索と置換]ダイアログボックスをフォームのボタンをクリックして表示させる方法です。
リボンは各自で非表示にしたり、あるいはフォームによって非表示にすることができますからね。
フォームでリボンを非表示にするには、[開く時]か[読み込み時]イベントに以下のように書くとリボンは非表示になります。
DoCmd.ShowToolbar "Ribbon", acToolbarNo
ここでは、Access2016の分割フォームで解説します。
[コントロールウィザードの使用]を確認
コントロールウィザードを使用して作成しますので、フォームをデザインビューで開いて、[デザイン]タブをクリックします。
まず、[その他]ボタンをクリックしてます。
そして、[コントロールウィザードの使用]がオンになっているか確認します。
オフになっていれば、クリックしてオンにします。
既定ではオンになっていると思いますが念のため確認します。
そして、[ボタン]をクリックします。
[レコードの検索]を選択
フォームヘッダーなどへドラッグしてボタンの位置を決定します。
[コマンドボタンウィザード]が表示されるので、[レコードの移動]-[レコードの検索]を選択して[次へ]ボタンをクリックします。
ボタンに表示する文字列またはピクチャの指定
次のウィザードで[文字列]を選択します。
既定ではピクチャになっています。
ピクチャのままでもOKです。
ボタンに表示する文字(レコードの検索)を変更したい場合は、ここで編集します。
[次へ]ボタンをクリックします。
参考[文字列]か[ピクチャ]を選択するようになっていますが、これは完成後にプロパティで変更できます。
文字列もピクチャも両方を表示することもできます。
ボタン名の入力
ボタン名を入力して[完了]ボタンをクリックします。
フォームビューで確認
デザインビューをフォームビューに切り替えると、下のようにボタンが設置されています。
クリックすると、[検索と置換]ダイアログボックスが表示されます。
この[検索と置換]ダイアログボックスは、慣れている方には問題ないのですが、慣れていない方にとっては使いづらいようです。
検索するフィールドを選択したり、検索条件を[フィールドの一部分]に変更して部分検索に行う操作が面倒という方も多いです。
参考デザインビューからフォームビューに切り替えるショートカットキーは、[F5]キーです。
レコードは存在するのに検索でヒットしない場合
レコードは間違いなく存在するのに検索してもヒットしないという場合は、以下をチェックしてみてください。
- [探す場所]が正しいフィールドになっているか
- [検索方向]が[すべて]になっているか
また、日付/時刻型のフィールドで検索する場合、[表示書式で検索する]をオフにするとヒットする場合があります。
[フィールドの一部分]にして検索ダイアログボックスを表示
[検索と置換]ダイアログボックスを起動したときに既定で[フィールドの一部分]にする方法は、オプションのクライアントの設定から変更することができます。
以下のページを参照してください。
Access2013で解説していますが、Access2016も同様の設定ができます。
-
[検索と置換]の検索条件を[フィールドの一部分]に変更するには
Accessの[ホーム]タブの[検索]グループにある[検索]ボタンをクリックして表示される[検索と置換]ダイアログボックスは便利ですね。 で ...
ですが、上記のクライアントの設定は各自のパソコンで設定してもらう必要があります。
クリック時イベントに入力
そこで、検索するフィールドが決まっていて、検索条件は[フィールドの一部分]にして検索ダイアログボックスを表示する方法を紹介します。
検索ボタンのプロパティを表示します。
クリック時イベントの[埋め込みマクロ]を削除([埋め込みマクロ]の文字を削除するだけでOKです。)して、[ビルダーの選択]ボタン[...]をクリックします。
[ビルダーの選択]ダイアログボックスの中から[コードビルダー]を選択して、[OK]ボタンをクリックします。
下のように入力します。
Me!商品名.SetFocus
SendKeys String:="%H{HOME}%N"
DoCmd.RunCommand acCmdFind
イベントプロシージャは下のようになります。
これで、どこのフィールドを選択していても商品名フィールドで検索し、検索条件は[フィールドの一部分]になります。
参考コントロールウィザードを使用せずに直接ボタンを設置してクリック時イベントに書き込んでも同じです。
関連以下のページも参考になると思います。
-
フォームのコンボボックスの値でレコードを抽出
フォームにコンボボックスを作成して、そのリストから選択して一致するレコードを抽出できるようにします。 ウィザードを使い、コンボボックスの値は ...
-
テキストボックスでレコード抽出(コードビルダーを起動して設定)
Accessのフォームで検索用のテキストボックスを作成して、そのテキストボックスに入力した文字列の部分一致でレコードを抽出する方法を紹介しま ...
-
コンボボックス作成ウィザードを使って検索用コンボボックスを簡単作成
Accessのフォームで検索用コンボボックスを作成する方法です。 コンボボックス作成ウィザードを使って簡単に作成することができます。 この記 ...