pickup

目次

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は、テーブルが数値型なので、非連結のテキストボックスも、数値型へ変更します。

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


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

スポンサーリンク

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


Private Sub コマンド57_Click()
Me.[契約書番号検索] = ""
Me.[車種ID検索] = ""
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
End Sub

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


Private Sub コマンド56_Click()
If Len(Me![車種ID検索]) > 0 Then
DoCmd.ApplyFilter , "[車種ID] =" & Me![車種ID検索] & " "
End If

If Len(Me![契約書番号検索]) > 0 Then
DoCmd.ApplyFilter , "[契約書番号] = '" & Me!契約書番号検索 & "'"
End If
End Sub

 

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


 

Private Sub 車種ID検索_AfterUpdate()
Me.[契約書番号検索] = ""
End Sub

 

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


Private Sub 契約書番号検索_AfterUpdate()
Me.[車種ID検索] = ""
End Sub

 

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

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

まとめ

 

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

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

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事