In deze zelfstudie leren we hoe u een recordset opent, het aantal records in de recordset telt, door de recordset loopt, een record toevoegt, een record bijwerkt, een waarde uit een record leest en een record verwijdert.
We hebben een Access Table, genaamd ProductsT hieronder weergegeven:
Een recordset openen
We moeten eerst de database vaststellen die we willen gebruiken, in dit geval de momenteel geopende database. We kunnen dan de CurrentDB.OpenRecordSet-methode gebruiken om onze Recordset te openen/maken.
Om een Recordset te maken waarmee we de gegevens in de tabel ProductsT kunnen manipuleren, zouden we de volgende code gebruiken:
1 | CurrentDb.OpenRecordset ("ProductenT") |
Het aantal records tellen met VBA
Als je eenmaal een Recordset hebt gemaakt, wil je er hoogstwaarschijnlijk iets nuttigs mee doen of de gegevens erin op de een of andere manier manipuleren. U kunt het aantal records in uw dataset tellen (in dit geval de tabel met de naam ProductsT) met behulp van de volgende code:
1 | MsgBox CurrentDb.OpenRecordset("ProductsT").RecordCount |
Een RecordSet doorlussen met VBA
De volgende code loopt door onze RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Dim onze database als databaseDim onze Recordset als RecordsetStel onzeDatabase = CurrentDb inStel ourRecordset = ourDatabase.OpenRecordset("ProductsT")Doen tot onzeRecordset.EOFMsgBox onzeRecordset!ProductIDourRecordset.MoveNextLusEinde sub |
VBA-programmering | Code Generator werkt voor u!
Een record toevoegen aan een RecordSet
Gebruik de methode Recordset.AddNew om een nieuw record aan de RecordSet toe te voegen:
1234567891011121314 | Sub RecordSet_Add()Met CurrentDb.OpenRecordset("ProductsT").ToevoegenNieuw![ProductID] = 8![ProductNaam] = "Product HHH"![ProductPrijsPerEenheid] = 10![ProductCategory] = "Speelgoed"![EenhedenInVoorraad] = 15.UpdateEindigt metEinde sub |
Het resultaat is:
Een recordset bijwerken
U moet de methode Recordset.AddNew of Recordset.Edit gebruiken. Na deze verklaring moet u de Recordset.Update-methode gebruiken om de wijzigingen te behouden.
Waarden uit een record lezen
Je moet de Recordset.FindFirst methode gebruiken om een record te maken, het huidige record. U moet dan Recordset.Fields gebruiken om aan te geven naar welk veld u moet kijken.
12345678910111213141516 | Sub RecordSet_ReadValue ()Dim onze database als databaseDim onze Recordset als RecordsetStel onzeDatabase = CurrentDb inStel ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset) inMet onzeRecordset.FindFirst "ProductName = " & "'Product CCC'"Als .NoMatch DanMsgBox "Geen overeenkomst gevonden"AndersMsgBox ourRecordset.Fields("ProductCategory")Stop alsEindigt metEinde sub |
Het resultaat is:
Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!
Een record uit een recordset verwijderen
Om een record uit een Recordset te verwijderen, moet u het eerst het huidige record maken met behulp van de Recordset.FindFirst-methode. U kunt het vervolgens verwijderen met behulp van de Recordset.Delete-methode. De volgende code laat zien hoe u record 2 in de dataset verwijdert:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Dim onze database als databaseDim onze Recordset als RecordsetStel onzeDatabase = CurrentDb inStel ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset) inMet onzeRecordset.FindFirst "ProductName = " & "'Product BBB'"Als .NoMatch DanMsgBox "Geen overeenkomst gevonden"AndersonzeRecordset.VerwijderenStop alsEindigt met'Tafel heropenen'DoCmd.AcTable sluiten, "ProductsT"DoCmd.OpenTable "ProductenT"Einde sub |
Het resultaat is: