次の方法で共有


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