Berlaku untuk
Objek ComboBox |
Objek Form |
Objek ListBox |
Objek Report |
Mengembalikan atau mengatur objek ADO Recordset atau DAO Recordset yang mewakili sumber rekaman untuk formulir, laporan, kontrol kotak daftar, atau kontrol kotak kombo yang ditentukan. Baca/tulis.
ekspresi.Recordset
ekspresi Diperlukan. Ekspresi yang mengembalikan salah satu objek dalam daftar Berlaku Untuk.
Keterangan
Properti Recordset mengembalikan objek recordset yang menyediakan data yang ditelusuri dalam formulir, laporan, kontrol kotak daftar, atau kontrol kotak kombo. Jika formulir didasarkan pada kueri, misalnya, merujuk ke properti Recordset setara dengan mengkloning objek Recordset menggunakan kueri yang sama. Namun, tidak seperti menggunakan properti RecordsetClone, mengubah data yang saat ini berada di kumpulan data yang dikembalikan oleh properti Recordset formulir juga mengatur data formulir saat ini.
Properti ini hanya tersedia dengan menggunakan kode Visual Basic for Applications (VBA).
Perilaku baca/tulis properti Recordset ditentukan oleh tipe kumpulan data (ADO atau DAO) dan tipe data (Access atau SQL) yang terdapat di kumpulan data yang diidentifikasi oleh properti.
Tipe kumpulan data |
Berdasarkan data SQL |
Berdasarkan data Access |
ADO |
Baca/Tulis |
Baca/Tulis |
DAO |
N/A |
Baca/Tulis |
Contoh berikut membuka formulir, membuka kumpulan data, lalu mengikat formulir ke kumpulan data dengan mengatur properti Recordset formulir ke objek Recordset yang baru dibuat.
Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub
Gunakan properti Recordset:
-
Untuk mengikat beberapa formulir ke suatu kumpulan data umum. Ini memungkinkan sinkronisasi beberapa formulir. Misalnya,
Set Me.Recordset = Forms!Form1.Recordset
-
Untuk menggunakan metode dengan objek Recordset yang tidak didukung secara langsung pada formulir. Misalnya, Anda bisa menggunakan properti Recordset dengan metode Temukan ADO atau Temukan DAO dalam dialog kustom untuk menemukan catatan.
-
Untuk mengumpulkan transaksi (yang dapat dikembalikan) di sekitar kumpulan editan yang memengaruhi beberapa formulir.
Mengubah properti Recordset formulir juga dapat mengubah properti RecordSource, RecordsetType, dan RecordLocks. Selain itu, beberapa properti yang terkait dengan data mungkin akan ditimpa, misalnya, properti Filter, FilterOn, OrderBy, dan OrderByOn.
Memanggil metode Requery dari kumpulan data formulir (misalnya, Forms(0).Recordset.Requery) dapat membuat formulir menjadi tidak terikat. Untuk merefresh data di formulir yang terikat ke kumpulan data, atur properti RecordSource formulir ke dirinya sendiri (Forms(0).RecordSource = Forms(0).RecordSource).
Ketika formulir terikat ke kumpulan data, kesalahan akan terjadi jika Anda menggunakan perintah Filter menurut Formulir.
Contoh
Contoh berikut menggunakan properti Recordset untuk membuat salinan baru objek Recordset dari formulir saat ini lalu mencetak nama bidang di jendela Debug.
Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer Dim fld As Field Set rst = Me.Recordset For Each fld in rst.Fields ' Print field names. Debug.Print fld.Name Next End Sub
Contoh berikutnya menggunakan properti Recordset dan objek Recordset untuk menyinkronkan kumpulan data dengan data formulir saat ini. Jika nama perusahaan dipilih dari kotak kombo, metode FindFirst digunakan untuk menemukan data perusahaan tersebut, sehingga formulir menampilkan data yang ditemukan.
Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset Dim strSearchName As String Set rst = Me.Recordset strSearchName = CStr(Me!SupplierID) rst.FindFirst "SupplierID = " & strSearchName If rst.NoMatch Then MsgBox "Record not found" End If rst.Close End Sub
Kode berikut membantu menentukan tipe kumpulan data yang dikembalikan oleh properti Recordset dalam situasi yang berbeda.
Sub CheckRSType()
Dim rs as Object Set rs=Forms(0).Recordset If TypeOf rs Is DAO.Recordset Then MsgBox "DAO Recordset" ElseIf TypeOf rs is ADODB.Recordset Then MsgBox "ADO Recordset" End If End Sub