クエリのパラメータ入力時にインプットボックス(InputBox関数)を使う

 InputBox関数を用いてクエリのパラメータの入力を行うことができます(正確にパラメータと呼べるかわかりませんが同様に機能します)。
 通常のパラメータ入力と比べたときのメリットとしては、ウインドウにタイトルを付けられること、メッセージ中で改行できること、同じく関数を用いることができること、既定値を設定できること、が挙げられます。

手順

f:id:accs2014:20180930005429p:plain:right:w500

 ではやってみましょう。
 サンプルとしてこのようなテーブルに基づくクエリを作り、インプットボックスに入力された値を条件として抽出を行います。


f:id:accs2014:20180930005427p:plain:right:w600

 クエリのデザインビューです。テーブルを置き、次のような列を設けます。


Eval("InputBox('抽出対象となる日付を入力してください'&Chr(13)&Chr(10)&'既定値('&Date()&')は今日の日付です','こんにちは',Date())")

f:id:accs2014:20180930005425p:plain:right:w550

 クエリをデータシートビューで開こうとするとインプットボックスが現れます。
 独自のタイトル設定、メッセージ中の改行及び関数の戻り値の表示、既定値の設定ができています。


f:id:accs2014:20180930005424p:plain:right:w400

 そのままOKをクリックすると、確かに該当するレコードが抽出できました。


備考

 同様に、クエリを開くときにMsgBox関数でメッセージを表示することができます(詳しくは次の記事に記載しています)。本記事はこの焼き直しです;-o-)

www.accessdbstudy.net

 また、抽出条件を設定する際には通常上記のように「抽出条件」欄に式を記入しますが、これで不具合が生じる場合は「新たな列を設ける」という方法もあります。
 具体例については次の記事の例が参考になるかと思います。

www.accessdbstudy.net