Velja za
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 Obvezen. 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    NextEnd 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.CloseEnd 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 IfEnd Sub

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.