Taikoma
Objektas ComboBox |
Objektas Form |
Objektas ListBox |
Objektas Report |
Grąžina arba nustato ADO įrašų rinkinio arba DAO įrašų rinkinio objektą, nurodantį nurodytos formos, ataskaitos, sąrašo lauko valdiklio arba pasirinktinio įvedimo lauko valdiklio įrašo šaltinis. Skaityti / rašyti.
reiškinys.Recordset
reiškinys Būtina. Reiškinys, kuris pateikia vieną iš sąrašo „Taikoma“ objektų.
Pastabos
Ypatybė Recordset grąžina objektą Recordset, kuris pateikia formoje, ataskaitoje, sąrašo lauko valdiklyje arba pasirinktinio įvedimo lauko valdiklyje naršomus duomenis. Pavyzdžiui, jei forma pagrįsta užklausa, nuoroda į ypatybę Recordset atitinka objekto Recordset klonavimą naudojant tą pačią užklausą. Tačiau, skirtingai nei naudojant ypatybę RecordsetClone, keičiant, kuris įrašas, grąžinamas formos ypatybės Recordset, yra dabartinis, taip pat nustatomas dabartinis formos įrašas.
Ši ypatybė galima tik naudojant „Visual Basic for Applications“ (VBA) kodą.
Ypatybės Recordset skaitymo / rašymo veikimą nustato įrašų rinkinio tipas (ADO ir DAO) bei įrašų rinkinyje esantis ypatybės atpažintas duomenų tipas („Access“ arba SQL).
Duomenų rinkinio tipas |
Naudojant SQL duomenis |
Naudojant „Access“ duomenis |
ADO |
Skaitoma / rašoma |
Skaitoma / rašoma |
DAO |
Netaikoma |
Skaitoma / rašoma |
Šiame pavyzdyje atidaroma forma, atidaromas įrašų rinkinys, tada forma susiejama su įrašų rinkiniu priskiriant formos ypatybę Recordset naujai sukurtam objektui Recordset.
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
Naudokite ypatybę Recordset šiais atvejais:
-
Norėdami susieti kelias formas su bendru duomenų rinkiniu. Tai leidžia sinchronizuoti kelias formas. Pavyzdžiui,
Set Me.Recordset = Forms!Form1.Recordset
-
Norėdami su objektu Recordset naudoti metodus, kurie nėra tiesiogiai palaikomi formose. Pavyzdžiui, norėdami rasti įrašą, galite naudoti ypatybę Recordset su ADO Find arba DAO Find metodais pasirinktiniame dialogo lange.
-
Norėdami kurti operaciją (kuri gali būti atšaukta) redagavimų rinkinio, kuris paveikia kelias formas, pagrindu.
Pakeitus formos ypatybę Recordset, taip pat gali būti pakeistos ypatybės RecordSource, RecordsetType ir RecordLocks. Taip pat gali būti perrašytos kai kurios su duomenimis susijusios ypatybės, pvz., ypatybės Filter, FilterOn, OrderBy ir OrderByOn.
Iškvietus formos įrašų rinkinio metodą Requery (pvz., Forms(0).Recordset.Requery), forma gali tapti nesusieta. Norėdami atnaujinti formos, susietos su įrašų rinkiniu duomenis, nustatykite formos ypatybę RecordSource kaip ją pačią (Forms(0).RecordSource = Forms(0).RecordSource).
Kai forma susieta su įrašų rinkiniu ir naudojate komandą Filtruoti pagal formą, įvyksta klaida.
Pavyzdys
Šiame pavyzdyje naudojama ypatybė Recordset, norint sukurti naują objekto Recordset kopiją iš dabartinės formos, tada derinimo lange spausdinami laukų pavadinimai.
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
Kitame pavyzdyje naudojama ypatybė Recordset ir objektas Recordset norint sinchronizuoti įrašų rinkinį su formos dabartiniu įrašu. Kai įmonės pavadinimas išrinktas pasirinktinio įvedimo lauke, metodas FindFirst naudojamas rasti tos įmonės įrašą, todėl forma rodo surastą įrašą.
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
Šis kodas padeda nustatyti, kokį įrašų rinkinio tipą grąžina ypatybė Recordset skirtingomis sąlygomis.
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