#542 パラメータクエリのパラメータのデータ型を限定するには? クエリ

パラメータクエリを実行したときに自動的に表示されるパラメータの入力ダイアログはAccess既定のもので、厳密なデータのチェックなどは行われません。そのため、たとえば日付/時刻型のフィールドに対して抽出条件を指定するようなパラメータに対して文字列や数値を入力した場合、パラメータとしては正常に受け入れられてしまい、実際にクエリが実行される際にエラーとなったり予期せぬ抽出結果となったりしてしまいます。パラメータがフォームのコントロールを参照している場合やVBAのプログラムから代入するような場合であればそちら側でパラメータの正当性をチェックすることができますが、クエリを単体で開いて利用するような場合には、そのままではチェックすることができません。

そのようなとき、各パラメータに対してデータ型を指定することで、少なくてもデータ型の異なる値が指定されたときの入力チェックだけは行われるようにすることができます。


それには、次のような手順でクエリの設定を行います。
  1. まず次のようなクエリがあったとします。ここでは「抽出開始日」と「抽出終了日」の2つのパラメータを持っており、いずれも日付/時刻型である「売上日付」フィールドに対して抽出条件を指定しています。
    通常のパラメータクエリ

  2. ここで、リボンの[デザイン]タブにある[表示/非表示]-[パラメータ]ボタンをクリックします。
    [パラメータ]ボタンをクリック

  3. 「クエリ パラメータ」ダイアログが表示されますので、クエリのグリッド上に記述されているのとまったく同じパラメータ名を入力するとともに、そのデータ型を指定します。
    クエリパラメータダイアログ
    ※パラメータ名が少しでも異なっていると別のパラメータとして扱われてしまうので、注意してください。

  4. 入力が完了したら、[OK]ボタンをクリックしてこのダイアログを閉じ、クエリを保存します。


実行例:

クエリを開くとパラメータを入力するためのダイアログが表示されますので、ここで日付/時刻型以外の値を指定してみます。
すると次のようなエラーメッセージが表示され、パラメータの再入力が促されます。
エラーメッセージが表示される

次に改めて正しい日付/時刻型の値を指定してみます。すると今度はクエリが実行されます。
日付/時刻型の値を指定

今度はクエリが実行される
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved