Form.RecordsetClone プロパティ (Access)
RecordsetClone プロパティを使用して、フォームの RecordSource プロパティで指定されたフォームの Recordset オブジェクトを参照します。 読み取り専用です。
構文
式。RecordsetClone
expressionForm オブジェクトを表す変数です。
注釈
RecordsetClone プロパティの設定値は、フォームの "RecordSource/レコードソース" プロパティに指定された、基になるクエリまたはテーブルのコピーです。 たとえば、クエリを基にして作成したフォームの場合、RecordsetClone プロパティを参照することは、そのクエリを使って Recordset オブジェクトを複製することと同じになります。 そのフォームにフィルターを実行すると、作成される Recordset オブジェクトにもそのフィルターの実行結果が反映されます。
このプロパティは、Visual Basic でのみ使用可能で、すべてのビューで値の取得が可能です。
RecordsetClone プロパティは、フォームのレコードをフォームとは別に移動したり操作したりするときに使います。 たとえば、フォームで使用できない DAO Find メソッドなどのメソッドを使用する場合は、RecordsetClone プロパティを使用できます。
新規の Recordset オブジェクトが開かれるときは、先頭のレコードが現在のレコードです。 Find メソッドまたは Move メソッドのいずれかを使用して Recordset オブジェクト内の他のレコードを現在のレコードにする場合は、フォームの Bookmark プロパティに DAO Bookmark プロパティの値を割り当てることで、Recordset オブジェクトの現在のレコードをフォームの現在のレコードと同期する必要があります。
例
次の例では、RecordsetClone プロパティを使用して、Orders フォームから 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 のサポートおよびフィードバックを参照してください。