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 を入力します:]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です