Egenskapen Recordset

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Gäller för

Objektet ComboBox

Objektet Form

Objektet ListBox

Objektet Report

Returnerar eller anger ADO-objektet Recordset eller DAO-objektet Recordset som representerar datakälla för angivet formulär, rapport, listrutekontroll eller kombinationsrutekontroll. Läs-/skrivbar.

uttryck.Recordset

uttryck Obligatoriskt. Ett uttryck som returnerar ett av objekten i listan Gäller för.

Kommentarer

Egenskapen Recordset returnerar postuppsättningsobjektet som innehåller de data som visas i ett formulär, en rapport, en listrutekontroll eller en kombinationsrutekontroll. Om ett formulär baseras på en fråga, motsvaras en hänvisning till egenskapen Recordset av att klona ett Recordset-objekt genom att använda samma fråga. När du ändrar vilken post i den aktuella postuppsättningen som returneras av formulärets Recordset-egenskap ändras också formulärets aktuella post, vilket inte sker när du använder egenskapen RecordsetClone.

Den här egenskapen är bara tillgänglig om du med hjälp av Visual Basic for Applications (VBA)-kod.

Läs-/skrivmöjligheten för egenskapen Recordset bestäms utifrån typen av postuppsättning (ADO eller DAO) och typen av data (Access eller SQL) som finns i postuppsättningen som definieras av egenskapen.

Recordset typ

Baseras på SQL-data

Baseras på Access-data

ADO

Läs-/skrivbar

Läs-/skrivbar

DAO

-

Läs-/skrivbar

Följande exempel öppnar ett formulär, öppnar en postuppsättning och binder sedan formuläret till postuppsättningen genom att ange formulärets Recordset-egenskap till det nyskapade Recordset-objektet.

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

Använda egenskapen Recordset:

  • Om du vill binda flera formulär till en gemensam datauppsättning. Då kan flera formulär synkroniseras. Exempel:

    Set Me.Recordset = Forms!Form1.Recordset

  • Om du vill använda metoder med Recordset-objektet som inte direkt stöds i formulär. Du kan till exempel använda egenskapen Recordset tillsammans med ADO-metoden Find eller DAO-metoden Find i en egen dialogruta när du vill söka efter en post.

  • Om du vill figursätta en transaktion (som kan återställas) runt en uppsättning redigeringar som påverkar flera formulär.

Om du ändrar ett formulärs Recordset-egenskap ändras också egenskaperna RecordSource, RecordsetType och RecordLocks. Vissa datarelaterade egenskaper kanske också åsidosätts, till exempel egenskaperna Filter, FilterOn, OrderBy och OrderByOn.

Om du anropar metoden Requery för ett formulärs postuppsättning (till exempel Forms(0).Recordset.Requery) kan det leda till att formuläret blir obundet. Du uppdaterar data i ett formulär som är bundet till en postuppsättning genom att ange egenskapen RecordSource för formuläret till sig själv (Forms(0).RecordSource = Forms(0).RecordSource).

När ett formulär är bundet till en postuppsättning uppstår ett fel om du använder kommandot Filtrera efter formulär.

Exempel

Följande exempel använder egenskapen Recordset för att skapa en ny kopia av objektet Recordset från det aktuella formuläret och skriver sedan namnen på fälten i felsökningsfönstret.

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

Nästa exempel använder egenskapen Recordset och objektet Recordset för att synkronisera en postuppsättning med formulärets aktuella post. När ett företagsnamn väljs i kombinationsrutan används metoden FindFirst för att leta reda på posten för det företaget, vilket får formuläret att visa den post som hittas.

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öljande kod hjälper till att fastställa vilken typ av postuppsättning som returneras av egenskapen Recordset under olika omständigheter.

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

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×