適用対象
Form オブジェクト |
Report オブジェクト |
"RecordSource/レコード ソース" プロパティを使用して、フォームまたはレポートのデータのソースを指定できます。 文字列型の値の読み取り/書き込みが可能です。
expression.RecordSource
expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。
解説
"RecordSource/レコード ソース" プロパティ設定には、テーブル名、クエリ名、または SQL ステートメントを使用できます。 たとえば、次の設定を使用することができます。
サンプル設定 |
説明 |
Employees |
データのソースとして Employees テーブルを指定するテーブル名。 |
SELECT Orders!OrderDate FROM Orders; |
データのソースとして Orders テーブルの OrderDate フィールドを指定する SQL ステートメント。 コントロールの ControlSource プロパティを OrderDate に設定して、フォームまたはレポートのコントロールを Orders テーブルの OrderDate フィールドにバインドすることができます。 |
注: "RecordSource/レコード ソース" プロパティを設定するには、フォームまたはレポートのプロパティ シート、マクロ、または Visual Basic for Applications (VBA) コードを使用します。
VBA では、文字列式を使用して、このプロパティを設定します。
注: 開いているフォームまたはレポートのレコード ソースを変更すると、基になるデータのクエリが自動的に再実行されます。 フォームの "Recordset/レコードセット" プロパティがランタイムで設定されると、フォームの "RecordSource/レコード ソース" プロパティは更新されます。
フォームまたはレポートを作成した後は、"RecordSource/レコード ソース" プロパティを変更してデータのソースを変更できます。 "RecordSource/レコード ソース" プロパティは、再利用可能なフォームまたはレポートを作成する場合にも役立ちます。 たとえば、標準のデザインを組み込んだフォームを作成し、そのフォームをコピーして、別のテーブル、クエリ、または SQL ステートメントのデータを表示するように "RecordSource/レコード ソース" プロパティを変更することができます。
フォームのレコード ソースに含まれるレコードの数を制限すると、特にアプリケーションがネットワーク上で実行されている場合にパフォーマンスが向上する可能性があります。 たとえば、フォームの RecordSource プロパティを、1 つのレコードを返す SQL ステートメントに設定し、ユーザーが選択した条件に応じてフォームのレコード ソースを変更できます。
例
次の例では、フォームの "RecordSource/レコード ソース" プロパティを Customers テーブルに設定します。
Forms!frmCustomers.RecordSource = "Customers"
次の例では、cmboCompanyName コンボ ボックス コントロールで選択されている会社名に応じて、フォームのレコード ソースを Customers テーブルの単一のレコードに変更します。 このコンボ ボックスには、(バインドされている列の) 顧客 ID と会社名を返す SQL ステートメントが表示されます。 CustomerID はテキスト データ型です。
Sub cmboCompanyName_AfterUpdate()
Dim strNewRecord As String
strNewRecord = "SELECT * FROM Customers " _
& " WHERE CustomerID = '" _
& Me!cmboCompanyName.Value & "'"
Me.RecordSource = strNewRecord
End Sub