検索条件設定フォームを使うレコード検索

概要説明

検索するフォームとは別に検索条件設定フォームを利用して検索する方法。検索条件設定フォームには、検索語を入力するテキストボックスと 検索を実行する検索実行ボタンを設け、検索結果をメインフォームに表示する関係になります。
複数の検索結果が出る場合に備えて、2件目以降への移動用の機能も設けます。

※技術ポイント
  • Recordset.FindFirst でのレコード検索
  • Recordset.FindNext でのカレントレコード以降の検索
  • Bookmarkプロパティを使って、二つのフォーム間の連携をする。
  • Do・・・Loop の繰り返し命令を使う

作り方

1.使用するフォーム

フォーム名:「F_名簿」

  • フォーム仕様 形式:単票形式 レコードソース:テーブル/クエリ(連結フォーム)

2.検索条件設定フォームの作成

検索条件設定フォームを新規に作ります。フォームは非連結フォームとし、余分な機能を外した仕様にします。 また検索用にテキストボックスとコマンドボタンを設置します。その仕様は次のようにします。

【フォームの仕様】

  • 名前:「F_検索条件設定」
  • 形式:非連結フォーム スクロールバー:なし レコードセレクト:いいえ 移動ボタン:いいえ 境界線スタイル:細線

【コントロールの設置】

  • テキストボックス「Txt_検索条件」 検索語を入力するところ
  • 検索実行ボタン「Btn_検索実行」 検索を実行するボタン
  • 終了ボタン「Btn_閉じる」 検索フォームを閉じるボタン
  • ※各コントロールのラベルは分かりやすい表現にします。

3.検索条件設定フォームに検索機能をつける

※DAOのレコードセットを使います。参照設定で「Microsoft DAO 3.5 Object Liblary」を使えるようにしておいてください。

【検索実行ボタンの機能】

  • クリック時イベントのプロシージャを作成します。
    (その手順)
  • デザインモードでフォームを開き、ボタン上で右クリックメニューで「イベントのビルド」をクリック、で「ビルダの選択」画面から「コードビルダ」をクリックします。
  • 表示されたVBAエディタの作成されたプロシージャに次のコードを記述します。緑色の文字は説明文ですので、機能には関係ありません。

【閉じるボタンの機能】

  • クリック時イベントのプロシージャを作成します。
    (プロシージャは省略します)
4.メインフォームに検索用のボタン設置

メインフォームから検索条件設定フォームを開くためのコマンドボタンを設置します。

クリック時イベントのプロシージャを作成します。

(プロシージャ)

5.使ってみる

機能はこれで完成。フォームビューで表示して操作し結果を確認してください。

その他の調整

付け加えた各コントロールの位置やラベルの調整は行っていません。分かりやすく使いやすい形状に仕上げてください。 テキストボックスのラベル表示は「氏名に含まれる文字を入力」とすると良いでしょう。

(この項終わり)