RecordsetClone 屬性

此頁沒有內容條目
內容

expandtri全部顯示

使用 RecordsetClone 屬性可以引用由窗體的 RecordSource 屬性所指定的窗體的 Recordset 對象。只讀。

expression.RecordsetClone

expression     必需。返回“應用于”列表中的一個對象的表達式。

說明

RecordsetClone 屬性設置是由窗體的 RecordSource 屬性指定的基礎查詢或基礎表的一個副本。例如,如果窗體基于一個查詢,那么對 RecordsetClone 屬性的引用與使用相同查詢來復制 Recordset 對象是等效的。如果此時將篩選應用于窗體,Recordset 對象將反映篩選的結果。

該屬性僅在使用 Visual Basic 時才可用,并在所有視圖中均為只讀。

使用 RecordsetClone 屬性可以獨立于窗體本身對窗體上的記錄進行導航或操作。例如,如果要使用一個不能用于窗體的方法(如 DAO Find 方法),則可以使用 RecordsetClone 屬性。

當新的 Recordset 對象打開時,它的當前記錄即為第一條記錄。如果使用一種 Find 方法或一種 Move 方法,使 Recordset 對象中的其他記錄成為當前記錄時,必須通過將 DAO Bookmark 屬性指定為該窗體的 Bookmark 屬性,以使 Recordset 對象中的當前記錄和窗體的當前記錄同步。

可以使用 RecordCount 屬性來計算 Recordset 對象中的記錄數(shù)。下面的示例顯示了如何組合 RecordCount 屬性和 RecordsetClone 屬性,以計算窗體中的記錄數(shù):

Forms!Orders.RecordsetClone.MoveLast

MsgBox "My form contains " _

    & Forms!Orders.RecordsetClone.RecordCount _

    & " records.", vbInformation, "Record Count"

注釋  如果關閉窗體或更改了窗體的 RecordSource 屬性,Recordset 對象就不再有效。如果接著引用 Recordset 對象或引用過去在窗體或 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 對象來實現(xiàn)記錄集內的記錄和窗體當前記錄的同步。當從組合框中選擇公司名稱時,使用 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