Gjelder for

ComboBox-objektet

Form-objektet

ListBox-objektet

Report-objektet

Returnerer eller angir objektet ADO Recordset eller DAO Recordset som representerer postkilde for angitt skjema, rapport, liste eller kombinasjonsboks. Lese/skrive.

uttrykk.Recordset

uttrykk Påkrevd. Et uttrykk som returnerer ett av objektene i Gjelder for-listen.

Kommentarer

Egenskapen Recordset returnerer postsettobjektet som inneholder dataene som leses i et skjema, en rapport, liste eller kombinasjonsboks. Hvis et skjema for eksempel er basert på en spørring, vil det å referere til egenskapen Recordset tilsvare kloning av et Recordset-objekt ved bruk av samme spørring. I motsetning til bruk av egenskapen RecordsetClone, vil det å endre hvilken post som er gjeldende i postsettet som returneres av skjemaets egenskap Recordset, også angi den gjeldende posten i skjemaet.

Egenskapen er bare tilgjengelig ved å bruke Visual Basic for Applications (VBA)-koden.

Virkemåten til lese-/skrivetilgang for egenskapen Recordset bestemmes av typen postsett (ADO eller DAO) og hvilken datatype (Access eller SQL) som finnes i postsettet som identifiseres av egenskapen.

Postsett -type

Basert på SQL-data

Basert på Access-data

ADO

Lese/skrive

Lese/skrive

DAO

I/T

Lese/skrive

Følgende eksempel åpner et skjema, åpner et postsett og binder deretter skjemaet til postsettet ved å angi skjemaets Recordset-egenskap til det nylig opprettede objektet 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

Bruk egenskapen Recordset til følgende:

  • Binde flere skjemaer til et felles datasett. Dette lar deg synkronisere flere skjemaer. Eksempler:

    Set Me.Recordset = Forms!Form1.Recordset

  • Bruke metoder med objektet Recordset som ikke støttes direkte i skjemaer. Du kan for eksempel bruke egenskapen Recordset med metodene ADO Find eller DAO Find i en egendefinert dialogboks for å finne en post.

  • Bryte en transaksjon (som kan tilbakestilles) rundt et sett med redigeringer som kan påvirke flere skjemaer.

Når egenskapen Recordset endres i et skjema, kan dette også endre egenskapene RecordSource, RecordsetType og RecordLocks. Enkelte datarelaterte egenskaper kan også overstyres, for eksempel egenskapene Filter, FilterOn, OrderBy og OrderByOn

Anrop på metode Requery for postsettet i et skjema (for eksempel Forms(0).Recordset.Requery) kan føre til at skjemaet blir ubundet. Hvis du vil oppdatere dataene i et skjema som er bundet til et postsett, kan du angi egenskapen RecordSource til seg selv (Forms(0).RecordSource = Forms(0).RecordSource).

Når et skjema er bundet til et postsett, oppstår det en feil hvis du bruker kommandoen for å filtrere etter skjema.

Eksempel

Følgende eksempel bruker egenskapen Recordset til å opprette en ny kopi av objektet Recordset fra det gjeldende skjemaet, og skriver deretter navnene på feltene i vinduet Feilsøking.

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

Det neste eksemplet bruker egenskapen Recordset og objektet Recordset for å synkronisere et postsett med den gjeldende posten for skjemaet. Når et firmanavn velges fra en kombinasjonsboks, kan metoden FindFirst brukes til å finne posten for dette firmaet, slik at skjemaet viser posten som blir funnet.

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

Følgende kode bidrar til å bestemme hvilken type postsett som returneres av egenskapen Recordset i ulike situasjoner.

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

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.