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