Form.RecordsetClone プロパティ (Access)

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 のサポートおよびフィードバックを参照してください。