このエントリーをはてなブックマークに追加

検索フォームにForm.Filterを記述する。(Access)

入力するデータを選択する検索フォームの作成。のページで、「商品検索」フォームを作成しました。この時点では、「T_商品」のデータ一覧が全て表示されるようになっています。そこで、この一覧から、探したい商品名、あるいは、商品名の一部をテキストボックスに入力することで、一覧表示を絞り込んでいきたいと思います。

ダイアログ

まずは、フォームを開いたときに、検索するワードを入れるテキストボックスにカーソルが行くように設定します。

  1. 「商品検索」フォームをデザインビューで開きます。
  2. 「フォーム」のプロパティシートから「イベント」タブを選択します。
  3. 「読み込み時」のビルドボタン[…]をクリックします。
  4. ビルダーの選択からコードビルダーを選択して、「OK」を押します。
    フォームデザイン
  5. VBEが起動するので、VBAコードを記入していきます。
Private Sub Form_Load()

Me.kensaku.SetFocus

End Sub

次に、「商品検索」フォームヘッダーセクションにある「検索」ボタンをクリックしたときのコードを記入します。「ボタン1」(検索ボタン)の「クリック時」イベントに、コードを記入していきます。

フォームデザイン
検索には、「Form.Filter」プロパティを使います。そして、「like演算子」を使ってあいまい検索ができるようにします。「kensaku」というのは、フォームヘッダーに配置している非連結のテキストボックスの名前です。このテキストボックスに商品名か商品名の一部を入れて、「商品名」を絞り込みます。そのあと、「ボタン2」(「入力」ボタン)にカーソルが行くようにしています。

Private Sub  ボタン1_Click()

Me.Filter = "商品名 like '*" & kensaku & "*'"
Me.FilterOn = True
Me.ボタン2.SetFocus

End Sub

続いて、「詳細」セクションにある「コマンド5」(「入力」ボタン)の「クリック時イベント」にもコードを記述します。

「商品検索」フォームで絞り込んだ商品の「商品ID」を「F_データ入力」フォームの「商品ID」コンボボックスに転記させるようにします。そのあと、カーソルを次に入力する「tx_数量」テキストボックスに合わせています。最後に、「商品検索」フォームは閉じておきます。

Private Sub コマンド5_Click()

Forms![F_データ入力]![cmb_商品ID] = Me.tx_商品ID
Forms![F_データ入力]![tx_数量].SetFocus
DoCmd.Close acForm, "F_商品検索"

End Sub

では、「F_データ入力」フォームにある「商品名検索」ボタンをクリックすると、「商品検索」フォームがダイアログボックスの形で開くように、コードを記述します。

フォームデザイン

Private Sub  ボタン3_Click()

DoCmd.OpenForm "F_商品検索", , , , , acDialog

End Sub

このように、「商品検索」フォームがダイアログ形式で開きます。

ダイアログ

テキストボックスにキーワードを入れて、「検索」ボタンを押すと、その文字を含む候補が上がります。

ダイアログボックス

入力したい行の「入力」ボタンを押すと、「データ入力」フォームのテキストボックスに転記され、「数量」テキストボックスにカーソルが合わせられます。

フォーム

では最後に、「商品検索」フォームに、「解除」ボタンを追加して、ボタンのクリック時イベントに、フィルターを解除するコードと、検索ワードを入れるテキストボックスにカーソルを合わせるコードを記入します。

Private Sub ボタン4_Click()

Me.FilterOn = False
Me.kensaku.SetFocus

End Sub

ダイアログボックス

このエントリーをはてなブックマークに追加

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=656

PAGE TOPへ戻る