ACCESSプロジェクト作成のメモ(3)
InputParameters(入力パラメータ)
フォームのレコード ソースに、1 つ以上の入力パラメータを必要とする SQL ステートメントやストアド プロシージャを使用する場合は、 InputParameters プロパティに、フォームから返されるレコードをフィルタするために使用される値を持つフィールドに設定する必要があります。
また、代わりに、ユーザーに値を入力させるためのプロンプトとなるテキストをこのフィールドに指定することもできます。
フォームのレコード ソースとして SQL ステートメントを使用している場合、 InputParameters プロパティの構文は次のとおりです。
FieldName DataType=[PromptingText]|FormFieldName
FieldName は SQL ステートメントでパラメータとして使用されているフィールド名、 DataType はパラメータのデータ型です。
ユーザーに対してパラメータ値の入力を促すプロンプト文字列を指定するか、またはパラメータ値として、フォームにあるフィールド (FormFieldName) を指定することができます。
たとえば、ユーザーに InstructorID の入力を促す Instructors フォームを作成し、この InstructorID に対応するレコードを 1 つのみ、このフォームに表示するとします。
このためには、フォームの RecordSource プロパティに次の SQL ステートメントを設定します。
SELECT * FROM Instructors WHERE InstructorID = ?
次に、フォームの InputParameters プロパティを次のように設定します。
InstructorID int=[Enter the InstructorID:]
ユーザーが初めてフォームを開くと、Enter the InstructorID: のメッセージ が表示されます。
フォームのレコード ソースとして、ストアド プロシージャを使用している場合、 InputParameters プロパティで使用される構文は次のようになります。
ParameterName DataType=[PromptingText]|FormFieldName
ParameterName には、先頭の @ 記号と共に、ストアド プロシージャで使用される実際のパラメータ名を指定します。
DataType はパラメータのデータ型です。
フォームのレコード ソースとして SQL ステートメントを使用している場合、ユーザーにパラメータ値の入力を促すプロンプト文字列を指定するか、またはフォームのフィールド (FormFieldName) を指定することができます。
たとえば、ユーザーに対し InstructorID 値の入力を促す Instructors フォームを作成し、この InstructorID に一致するレコードを 1 つのみフォームに表示するとします。
このためには、フォームの RecordSource プロパティにインストラクタ名を取得するストアド プロシージャ名を設定します。
CREATE PROCEDURE GetInstructor ( @InstructorID int ) AS SELECT * FROM Instructors WHERE InstructorID = @InstructorID RETURN
次に、フォームの InputParameters プロパティを次のように設定します。
@InstructorID int=[InstructorID を入力します:]