Access

【VBA】パラメーターが少なすぎます。1を指定してください。

パラメーター

パラメータが少なすぎます。1を指定してください。
パラメータが少なすぎます。○を指定してください。

パラメータクエリーを使っていて、上記のようなエラーに遭遇していませんか?

このエラーはパラメータ指定に問題がある場合のエラーです

「クエリーをナビゲーションウィンドウから直接実行した時はエラーにならないのに・・・」と悩んでいる方。

パラメーターがフォーム参照になっているクエリーをVBAで実行しようとしていませんか?

フォーム参照のパラメータークエリーとは?

パラメーターとして表示されているフォームのコントロー値を指定しているクエリーのことです。
(例)

フォーム参照パラメーター

このパラメータークエリーは指定されているフォーム(Frm顧客登録)が開いている場合はダイアログ表示することなく実行可能です。

※指定のフォームが開いていない時は入力を求めるダイアログボックスが表示されます。

フォーム参照クエリーをVBAで実行するとこうなる

フォーム参照クエリーをVBAから実行すると、指定のフォームが開いていても閉じていても、以下のようなエラーとなります。

パラメーターエラー

これはパラメーターの指定がないというエラーです。

たとえフォームのコントロール値が参照できる状態であっても(そのフォームから起動していたとしても)パラメーターが「指定されていない」ことになってしまいます。

エラーを回避するための対処法

そもそも、VBAからパラメータークエリーを起動する場合、パラメーターは「パラメーター名」としてしか認識しません。

ナビゲーションウィンドウからの起動や、フォームのコントロールソースとしての利用の場合、パラメーターがフォーム参照形式になっていれば、自動的にパラメータ名を展開して解釈してくれます。

パラメータークエリーをVBAから実行する場合は、改めてパラメーター名に値をセットしてあげます。

こうすることで無事にクエリーを実行することができます。

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。