RecordsetClone プロパティを使用すると、フォームの RecordSource プロパティによって指定されたフォームの Recordset オブジェクトを参照できます。 読み取り専用です。
構文
式。RecordsetClone
expressionForm オブジェクトを表す変数です。
注釈
RecordsetClone プロパティの設定値は、フォームの "RecordSource/レコードソース" プロパティに指定された、基になるクエリまたはテーブルのコピーです。 たとえば、クエリを基にして作成したフォームの場合、RecordsetClone プロパティを参照することは、そのクエリを使って Recordset オブジェクトを複製することと同じになります。 そのフォームにフィルターを実行すると、作成される Recordset オブジェクトにもそのフィルターの実行結果が反映されます。
このプロパティは、Visual Basic でのみ使用可能で、すべてのビューで値の取得が可能です。
RecordsetClone プロパティは、フォームのレコードをフォームとは別に移動したり操作したりするときに使います。 たとえば、DAO Find メソッドなど、フォームで使用できないメソッドを使用する場合は、RecordsetClone プロパティを使用できます。
新規の Recordset オブジェクトが開かれるときは、先頭のレコードが現在のレコードです。 いずれかの Find メソッドまたはいずれかの Move メソッドを使用して Recordset オブジェクト内の他のレコードを現在のレコードにする場合は、DAO Bookmark プロパティの値をフォームの Bookmark プロパティに割り当てて、Recordset オブジェクトの現在のレコードをフォームの現在のレコードと同期する必要があります。
例
次の例は、RecordsetClone プロパティを使用して、[受注] フォームから Recordset オブジェクトの新しいクローンを作成し、そのフィールドの名前を [即時] ウィンドウに出力します。
Sub Print_Field_Names()
Dim rst As Recordset, intI As Integer
Dim fld As Field
Set rst = Me.RecordsetClone
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub
次の使用例では、RecordsetClone プロパティと Recordset オブジェクトを使って、レコードセットのレコードとフォームの現在のレコードを同期させます。 コンボ ボックスから会社名を選択すると、 FindFirst メソッドを使用してその会社のレコードを検索し、 Recordset オブジェクトの DAO Bookmark プロパティをフォームの Bookmark プロパティに割り当てると、見つかったレコードがフォームに表示されます。
Sub SupplierID_AfterUpdate()
Dim rst As Recordset
Dim strSearchName As String
Set rst = Me.RecordsetClone
strSearchName = Str(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
End Sub
Recordset オブジェクト内のレコード数をカウントするには、RecordCount プロパティを使用します。 次の例は、 RecordCount プロパティと RecordsetClone プロパティを組み合わせてフォーム内のレコードをカウントする方法を示しています。
Forms!Orders.RecordsetClone.MoveLast
MsgBox "My form contains " _
& Forms!Orders.RecordsetClone.RecordCount _
& " records.", vbInformation, "Record Count"
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。