Lastnost »Niz zapisov«

Velja za

Predmet ComboBox

Predmet Form

Predmet ListBox

Predmet Report

Vrne ali nastavi predmet ADO Recordset ali DAO Recordset, ki predstavlja vir zapisov za navedeni obrazec, poročilo, kontrolnik polja s seznamom ali kontrolnik kombiniranega polja. Za branje/pisanje.

izraz.Recordsetzapisov

izraz »Zahtevano«. Izraz, ki vrne enega od predmetov s seznama »Velja za«.

Opombe

Lastnost Recordset vrne predmet recordset, ki prikaže podatke, po katerih brskate v obrazcu, poročilu, kontrolniku polja s seznamom ali kontrolniku kombiniranega polja. Če obrazec temelji na poizvedbi, je na primer sklicevanje na lastnost Recordset enako kloniranju predmeta Recordset z isto poizvedbo. Toda v nasprotju z uporabo lastnosti RecordsetClone, se takrat, ko spremenite trenutni zapis v naboru zapisov, ki ga vrne lastnost Recordset obrazca, nastavi tudi trenutni zapis obrazca.

To lastnost lahko nastavite le s kodo Visual Basic for Applications (VBA).

Vedenje za branje/pisanje v lastnosti Recordset je določeno z vrsto nabora zapisov (ADO ali DAO) in vrsto podatkov (Access ali SQL), ki so v naboru zapisov, ki ga določa lastnost.

Vrsta nabora zapisov (recordset)

Temelji na podatkih SQL

Temelji na Accessovih podatkih

ADO

Branje/pisanje

Branje/pisanje

DAO

Ni na voljo

Branje/pisanje

Spodnji primer odpre obrazec, odpre nabor zapisov in nato poveže obrazec z naborom zapisov, tako da lastnost Recordset obrazca nastavi na novo ustvarjeni predmet 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

Lastnost Recordset uporabite:

  • Ko želite povezati več obrazcev v skupni nabor podatkov. S tem omogočite sinhronizacijo več obrazcev. Primer:

    Set Me.Recordset = Forms!Form1.Recordset

  • Ko želite uporabiti metode s predmetom Recordset, ki niso neposredno podprte v obrazcih. Lastnost Recordset lahko na primer uporabite z metodo ADO Find ali DAO Find v pogovornem oknu po meri, ko želite poiskati zapis.

  • Ko želite transakcijo (ki jo je mogoče razveljaviti) nastaviti za nabor urejanj, ki vplivajo na več obrazcev.

Če spremenite lastnost Recordset v obrazcu, se lahko spremenijo tudi lastnosti RecordSource, RecordsetType in RecordLocks. Nekatere lastnosti, povezane s podatki, je mogoče tudi preglasiti, na primer Filter, FilterOn, OrderBy in OrderByOn.

Če pokličete metodo Requery nabora zapisov v obrazcu (na primer Forms(0).Recordset.Requery), lahko obrazec postane nevezan. Če želite osvežiti podatke v obrazcu, ki je vezan z naborom zapisov, nastavite lastnost RecordSource obrazca samo nase (Forms(0).RecordSource = Forms(0).RecordSource).

Ko je obrazec povezan z naborom zapisov, pride do napake, če uporabite ukaz »Filter by Form«.

Primer

V spodnjem primeru je lastnost Recordset uporabljena za ustvarjanje nove kopije predmeta Recordset iz trenutnega obrazca; nato prikaže imena polj v oknu za iskanje napak.

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

V naslednjem primeru sta lastnost Recordset in predmet Recordset uporabljena za sinhronizacijo nabora zapisov v trenutnem zapisu obrazca. Če je v kombiniranem polju izbrano ime podjetja, je z metodo FindFirst poiskan zapis za to podjetje; v obrazcu se prikaže najdeni zapis.

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

Ta koda pomaga določiti, katero vrsto nabora zapisov vrne lastnost Recordset pod različnimi pogoji.

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
Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×