Van toepassing op
ComboBox-object |
Form-object |
ListBox-object |
Report-object |
Hiermee kunt u het ADO-object Recordset of het DAO-object Recordset instellen of als resultaat teruggeven dat staat voor de recordbron van het opgegeven formulier, rapport, besturingselement keuzelijst of besturingselement keuzelijst met invoervak. Lezen/schrijven.
expressie.Recordset
expressie Vereist. Een expressie die een van de objecten in de lijst Van toepassing op retourneert.
Opmerkingen
De eigenschap Recordset geeft als resultaat het recordsetobject dat de gegevens levert waarin wordt gebladerd in een formulier, rapport, keuzelijst of keuzelijst met invoervak. Als een formulier bijvoorbeeld op een query is gebaseerd, dan staat een verwijzing naar de eigenschap Recordset gelijk aan het klonen van een Recordset-object door dezelfde query te gebruiken. Anders dan bij het gebruik van de eigenschap RecordsetClone wordt bij het wijzigen van de huidige record in de recordset die als resultaat wordt teruggegeven als gevolg van de eigenschap Recordset van het formulier, ook de huidige record van het formulier ingesteld.
Deze eigenschap is alleen beschikbaar door VBA-code (Visual Basic for Applications) te gebruiken.
Het gedrag lezen/schrijven van de eigenschap Recordset wordt bepaald door het type recordset (ADO of DAO) en het type gegevens (Access of SQL) dat de door de eigenschap gedefinieerde recordset bevat.
Type recordset |
Gebaseerd op SQL-gegevens |
Gebaseerd op Access-gegevens |
ADO |
Lezen/schrijven |
Lezen/schrijven |
DAO |
N.v.t. |
Lezen/schrijven |
In het onderstaande voorbeeld wordt een formulier geopend, wordt een recordset geopend en wordt vervolgens het formulier afhankelijk gemaakt van de recordset door de eigenschap Recordset van het formulier in te stellen op het nieuw gemaakte object 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
Gebruik de eigenschap Recordset:
-
Als u meerdere formulieren van één gegevensset afhankelijk wilt maken. Dit maakt de synchronisatie van meerdere formulieren mogelijk. Bijvoorbeeld,
Set Me.Recordset = Forms!Form1.Recordset
-
Methoden gebruiken met het Object Recordset die niet rechtstreeks worden ondersteund in formulieren. U kunt bijvoorbeeld de eigenschap Recordset gebruiken met de methoden ADO Zoeken of DAO Zoeken in een aangepast dialoogvenster om een record te zoeken.
-
Als u een transactie (die kan worden teruggedraaid) wilt wikkelen rond een set bewerkingen die betrekking heeft op meerdere formulieren.
Als u de eigenschap Recordset van een formulier wijzigt, kan dat wijzigingen veroorzaken in de eigenschappen RecordSource, RecordsetType en RecordLocks. Ook is het mogelijk dat bepaalde gegevensgerelateerde eigenschappen worden genegeerd, bijvoorbeeld de eigenschappen Filter, FilterOn, OrderBy en OrderByOn
Als de methode Requery wordt aangeroepen voor de recordset van een formulier (bijvoorbeeld Forms(0).Recordset.Requery), kan het formulier daardoor niet-afhankelijk worden. Als u de gegevens wilt vernieuwen van een formulier dat van een recordset afhankelijk is, stelt u de eigenschap RecordSource van het formulier in op zichzelf (Forms(0).RecordSource = Forms(0).RecordSource).
Als een formulier afhankelijk is van een recordset, treedt een fout op als u de opdracht Formulierfilter gebruikt.
Voorbeeld
In het onderstaande voorbeeld wordt de eigenschap Recordset gebruikt om een nieuw exemplaar te maken van het Recordset-object van het huidige formulier, waarna de namen van de velden worden afgedrukt in het venster Foutopsporing.
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
In het volgende voorbeeld worden de eigenschap Recordset en het object Recordset gebruikt om een recordset te synchroniseren met de huidige record van een formulier. Wanneer een bedrijfsnaam wordt geselecteerd in een keuzelijst met invoervak, wordt met de methode FindFirst de record voor dat bedrijf opgezocht, waarna de gevonden record op het formulier wordt weergegeven.
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
Met de onderstaande programmacode kunt u vaststellen welk type recordset onder verschillende voorwaarden als resultaat wordt teruggegeven als gevolg van de eigenschap Recordset.
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