目次
検索フォームの作成について
こんにちは。伊川(@naonaoke)です。
今回は、ACCESSの初心者が、いったんは、疑問に思うことを説明します。
そして、疑問を解消しながら、カンタンな検索フォームを作成します。
問題提起
株)IKAWAの阿久 世子男(アク セスオ)は上司から、下記の依頼を受けました。
・オートルックアップクエリを使うこと。
・検索フォームを作成すること。
ACCESSのマニュアル本を読んだのでが、連結、非連結という言葉でてきます。
まったく何を言っているのか理解できません。
どうしたらいいだろうか?
解決策
・非連結ボックスで、検索窓を作成する。・カンタンな検索フォームなら、オートルックアップクエリを使う。
連結ボックスと非連結ボックス
連結ボックス
フォームで入力した内容が、直接テーブルに反映されるのが、連結ボックスです。
フォームでデータ入力のために使います。
非連結ボックス
フォームで入力した内容が、テーブルに反映されないのが、非連結ボックスです。
フォームで、検索窓などによく使います。
こんな型になっています。
検索窓が、なぜ、非連結ボックスになっているのかという疑問を回答します。
検索するたびに、検索ワードがデータベースに反映されたら、データベースがパンクするからです。
検索フォームを作成する
オートルックアップクエリ、連動コンボボックスを作成します。
上の記事はすでに紹介済です。
作成手順 その1 データベースを確認する
各車の購入金額を検索したいとします。データベースを確認すると、一意のキーがありません。つまり、主キーがありません。オートルックアップクエリが使えません。なので、必ず、主キーは設定しましょう。今回はガムシャラに主キーを設定します。データベースを作成するときはオートルックアップクエリが使えるように設計しましょう。
検索キーに主キーを設定しました。
主キーを設定できたということは、検索キーが、重複がなく、かつ、空白ではないということです。
主キーが設定できたということは、オートルックアップクエリが使えるということです。
作成手順 その2 非連結のボックスを使って、5連動のコンボボックスを作成
検索フォームを作成します。
検索フォーム作成後、検索窓を作成します。
この5つの条件で、検索条件を絞ります。
このボックスに関しては、全て非連結のボックスです。
そこに、5連動のコンボボックスを作成します。
コンボボックスの作成に関しては、上の記事を読んでください。
作成手順 その3 オートルックアップクエリを作成する
上の図のように、一対多のリレーションを設定して、クエリを作成します。
クエリの名前をQ_オート検索にしました。
作成手順 その4 検索フォームのレコードソースを変更する
一応全てのフィールドの配置が終わったら、検索フォームのレコードソースを変更してください。
Q_オート検索に必ず変更してください。
Q_オート検索に変更しないと、オートルックアップクエリが使えないからです。
作成手順 その5 検索ボタンにVBAのコードを仕込む
Private Sub コマンド83_Click()
Me.検索キー = Me.[メーカー検索] & Me.[車種検索] & Me.[ハイブリット検索] & Me.[色検索] & Me.[備考検索]
Me.検索した日 = Date
End Sub
仕掛けはものすごく、カンタンです。
各項目をアンパサド(&)で連結しました。
連結した言葉は、そのまま検索キーとなります。
その検索キーが、芋づる式に、値を引っ張ってきます。
まとめ
非常にカンタンな検索フォームを作成しました。オートルックアップクエリと、主キーがあれば検索は、カンタンです。
サンプルファイルはNo39です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。