Microsoft Access プロジェクト (.adp) 内でレコード ソースとして使用されるときに、フォームやレポート、またはストアド プロシージャの RecordSource プロパティの SQL ステートメントに渡される入力パラメータを指定または決定するには、InputParameters プロパティを使用します。 読み取り/書き込みが可能な String です。
構文
式。InputParameters
式: Report オブジェクトを表す変数。
解説
RecordSource プロパティと共に使用する場合
"InputParameters/入力パラメーター" プロパティの文字列を "RecordSource/レコードソース" プロパティの SQL ステートメントで使用する場合、以下の構文を使用します。
state char=[Forms]![formname]![StateList], salesyear smallint=[Forms]![formname]![Enter year of interest]
この結果、 state パラメーターが StateList コントロールの現在の値に設定され、ユーザーは salesyear パラメーターの入力を求められます。 このリストにないパラメーターがある場合、割り当てられた既定値を取得します。
クエリは、 InputParameters リストの既定以外のパラメーターごとに 1 つのマーカーを使用して実行する必要があります。
Access の更新または再クエリ コマンド (メニュー、キーボード、またはナビゲーション バーを介して) を実行すると、クエリの再実行がトリガーされます。 ユーザーは、標準の Requery メソッドを呼び出すことにより、コードでこれを行うことができます。 パラメーターの値がフォームのコントロールに連結している場合、再クエリを実行するとコントロールの現在の値が使用されます。 コントロールの値を変更しても、クエリが自動的に再実行されることはありません。
ストアド プロシージャと共に使用する場合
ストアド プロシージャで使用される InputParameters プロパティ文字列の例では、次の構文を使用します。
@state char=[Forms]![formname]![StateList], @salesyear smallint=[Forms]![formname]![Enter year of interest]
これにより、 @state パラメーターが StateList コントロールの現在の値に設定され、ユーザーに @salesyear パラメーターの入力を求めるメッセージが表示されます。 ストアド プロシージャにこの一覧にない他のパラメータがある場合は、既定値が割り当てられます。
ストアド プロシージャは、{call } 構文を含むコマンド文字列を使用し、 InputParameters リストの既定以外のパラメーターごとに 1 つのマーカーを使用して実行する必要があります。
Access の更新または再クエリ コマンド (メニュー、キーボード、またはナビゲーション バーを介して) を実行すると、ストアド プロシージャの再実行がトリガーされます。 ユーザーは、標準の Requery メソッドを呼び出すことにより、コードでこれを行うことができます。 パラメーターの値がフォームのコントロールに連結している場合、再クエリを実行するとコントロールの現在の値が使用されます。 コントロールの値を変更しても、ストアド プロシージャが自動的に再実行されることはありません。
ストアド プロシージャにパラメーターがある場合、フォームのレコード ソースとしてストアド プロシージャを最初に選択したとき、このビルダーが表示されます。 InputParameters 文字列が新規作成された後は、この文字列を変更するためのビルダーとして、同じダイアログ ボックスが使用されます。 ただし、この場合、パラメーターのリストは文字列に既に存在するものから取得されます。
パラメータ値は、ActiveX Data Object (ADO) の Command および Parameter オブジェクトを使用してコードで設定することもできます。 結果から結果セットが返される場合、フォームの Recordset プロパティを設定することで、フォームを結果セットにバインドできます。 ADO コーディングは、アクション クエリなどの結果セットを返さないストアド プロシージャ、出力パラメータを返すストアド プロシージャ、または複数の結果セットを返すストアド プロシージャを処理する唯一の方法です。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。