VBAを利用して簡単な検索フォームを作成

こんにちは。伊川(@naonaoke)です。

今回は、ACCESSでカンタンな検索フォームを作成します。

【Ctrl+F】で検索もできますが、せっかくACCESSを操作しているので、正式な検索フォームを作成しましょう。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は、上司から下記のような依頼を受けました。

・カンタンな検索フォームを作成すること。

・検索ワードは2つあり、検索窓を2つ作成すること。

・VBAを使って作成すること。

VBAは初めてで、どのようなコードを記載するの理解できません。

どうしたらいいだろうか?

解決策

 

回答
sesuo2.jpg
・DoCmd.ApplyFilterで検索のコードを記載する・IF構文を使って条件分岐をする。

検索フォーム作成

検索フォーム作成手順 その1 データベースの確認


上の図のデータベースに関して、検索フォームを作成します。


こんなフォームを作成します。

検索フォーム作成手順 その2 検索フォームの土台を作成


「作成」⇒「空白のフォーム」を選択します。


「すべてのテーブルを表示する」を選択します。


「MT_データベース」を選択します。


MT_データベースのフィールの内容がすべて確認できました。

必要な項目を選択するのですが、今回は、すべて選択します。



こんな状態になります。

名前をつけて保存してください。

検索フォーム作成手順 その3 検索フォームの微調整をする


次に、名前をつけて保存したフォームを「デザインビュー」で開きます。



フォーム上の適当な場所で、右クリックします。

そして、フォームのプロパティを選択します。


レコードソースを、MT_データベースへ変更します。


「データ入力用」を、「いいえ」から「はい」へ変更します。


「フォームヘッダー/フッター」を選択します。


ヘッダー部分(バックの色が、ブルーの場所)に非連結のテキストボックスを2つ設置します。


上の図が検索窓(非連結のテキストボックス)の設置方法です。


「レコードの保存」「レコードの検索」ボタンを設置します。


検索フォーム作成手順 その4 検索フォームの重要な調整


車種IDは、テーブルが数値型なので、非連結のテキストボックスも、数値型へ変更します。

そうしないと、検索のコードを実行したときに、「型が一致しません」「クエリの演算子がありません」等、エラーの原因になります。


反対に、契約書番号検索は、書式には何も設定しません。

スポンサーリンク

レコードの保存ボタンに仕込むコード


レコードの検索ボタンに仕込むコード


 

車種ID検索の更新後処理に仕込むコード


 

 

契約書番号検索の更新後処理に仕込むコード


 

ここがポイント
Function8.png
テーブルのフィールドの型と、検索フォームの型は、必ず一致させます。そして、数値型と、文字型では、クォテーションが微妙に違います。

上の記事で解説していますので、参考にしてください。

まとめ

 

今回のまとめ
sesuo6.jpg
今回は、本当にVBAを使ってカンタンな検索フォームを作成しました。しかし、カンタンとはいっても、伊川が実際に業務で使っている検索フォームです。カンタンではありますが、ぜひ、みなさんのスキルにしてください。

今回のサンプルファイルは、No41です

サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事