Recordset-egenskapen

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 listen Gjelder for.

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
Next
End 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.Close
End 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 If
End Sub
Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×