Egenskaben Postsæt

Gælder for

ComboBox-objekt

Formularobjekt

ListBox-objekt

Rapportobjekt

Returnerer eller angiver objekterne ADO Postsæt eller DAO Postsæt, der repræsenterer postkilde for den angivne formular, rapport, listefeltelement eller kombinationsfeltelement. Læs/skriv.

udtryk.Postsæt

udtryk Påkrævet. Et udtryk, der returnerer et af objekterne på listen Gælder for.

Bemærkninger

Egenskaben Postsæt returnerer postsætobjektet, der indeholder de data, der skal gennemses i en formular, rapport, listefeltelement eller kombinationsfeltelement. Hvis en formular er baseret på en forespørgsel, svarer det at referere til egenskaben Postsæt til at klone et Postsæt-objekt ved hjælp af den samme forespørgsel. Men i modsætning til at bruge egenskaben RecordsetClone så indstilles formularens aktuelle post også, når man ændrer, hvilken post der er aktuel i postsættet ved hjælp af formularens Postsæt-egenskab.

Denne egenskab er kun tilgængelig ved hjælp af VBA-kode (Visual Basic for Applications).

Læs/skriv-funktionaliteten for egenskaben Postsæt bestemmes af typen af postsæt (ADO eller DAO) og typen af data (Access eller SQL), der er indeholdt i postsættet, der er identificeret for egenskaben.

Postsæt -type

Baseret på SQL-data

Baseret på Access-data

ADO

Læs/skriv

Læs/skriv

DAO

I/T

Læs/skriv

I nedenstående eksempel åbnes en formular, åbnes et postsæt og derefter bindes formularen til postsættet ved at indstille formularens Postsæt-egenskab til det nyoprettede Postsæt-objekt.

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

Brug af Postsæt-egenskaben:

  • Til at binde flere formularer til et fælles datasæt. Dette giver mulighed for synkronisering af flere formularer. For eksempel:

    Set Me.Recordset = Forms!Form1.Recordset

  • Til at bruge metoder med Postsæt-objektet, der ikke understøttes direkte i formularer. Eksempelvis kan du bruge Postsæt-egenskaben med metoderne ADO Søg eller DAO Søg i en brugerdefineret dialogboks til at finde en post.

  • Til at ombryde en transaktion (som kan annulleres) omkring et sæt ændringer, der påvirker flere formularer.

Ændring af en formulars Postsæt-egenskab kan også ændre egenskaberne Postkilde, Postsættype og Postlåse. Desuden kan visse datarelaterede egenskaber tilsidesættes, f.eks. egenskaberne Filter, FilterTil, SorterEfter og SorteringTil.

Kald af metoden Genforespørgsel for en formulars postsæt (f.eks. Forms(0).Recordset.Requery) kan medføre, at formularen bliver ubundet. Hvis du vil opdatere dataene i en formular, der er bundet til et postsæt, skal du indstille formularens Postkilde-egenskab til sig selv (Forms(0).RecordSource = Forms(0).RecordSource).

Når en formular er bundet til et postsæt, opstår der en fejl, hvis du bruger kommandoen Filtrer efter formular.

Eksempel

I følgende eksempel bruges egenskaben Postsæt til at oprette en ny kopi af objektet Postsæt fra den aktuelle formular, og derefter udskrives navnene på felterne i vinduet Fejlfinding.

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

I næste eksempel bruges Postsæt-egenskaben og Postsæt-objektet til at synkronisere et postsæt med formularens aktuelle post. Når et firmanavn vælges i et kombinationsfelt, så benyttes FindFørst-metoden til at finde posten for det pågældende firma, der medfører, at formularen viser den fundne post.

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

Den følgende kode hjælper med til at bestemme, hvilken type postsæt der returneres af Recordset-egenskaben under forskellige betingelser.

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
Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×