Få tillgång till VBA Recordsets - Open, Count, Loop och mer

I den här självstudien kommer vi att lära oss hur man öppnar en postmängd, räknar antalet poster i rekorduppsättningen, går igenom posten, lägger till en post, uppdaterar en post, läser ett värde från en post och tar bort en post.

Vi har ett åtkomstbord, kallat ProductsT som visas nedan:

Öppnar en inspelningssats

Vi måste först etablera databasen vi tänker använda, i det här fallet är det den för närvarande öppnade databasen. Vi kan sedan använda metoden CurrentDB.OpenRecordSet för att öppna/skapa vår Recordset.

För att skapa en postuppsättning som gör att vi kan manipulera data i tabellen som heter ProductsT, skulle vi använda följande kod:

1 CurrentDb.OpenRecordset ("ProductsT")

Räknar antalet poster med VBA

När du väl har skapat en Recordset skulle du mer än troligtvis vilja göra något användbart med den eller manipulera data i den på något sätt. Du kan räkna antalet poster i din datamängd (i detta fall tabellen som heter ProductsT) med följande kod:

1 MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount

Looping genom en RecordSet med VBA

Följande kod går igenom vår RecordSet:

1234567891011121314 Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetStäll in ourDatabase = CurrentDbAnge ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Gör tills vår inspelning.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextSlingaAvsluta Sub

Lägga till en post i en RecordSet

Använd metoden Recordset.AddNew för att lägga till en ny post i RecordSet:

1234567891011121314 Sub RecordSet_Add ()Med CurrentDb.OpenRecordset ("ProductsT").Lägg till ny! [ProductID] = 8! [ProductName] = "Produkt HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Leksaker"! [UnitsInStock] = 15.UppdateringSluta medAvsluta Sub

Resultatet är:

Uppdaterar en inspelningsuppsättning

Du måste använda metoden Recordset.AddNew eller Recordset.Edit. Efter detta uttalande måste du använda metoden Recordset.Update för att behålla ändringarna.

Läser värden från en post

Du måste använda metoden Recordset.FindFirst för att göra en post, den aktuella posten. Du måste sedan använda Recordset.Fields för att ange vilket fält du vill titta på.

12345678910111213141516 Sub RecordSet_ReadValue ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetStäll in ourDatabase = CurrentDbAnge ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med vår inspelning.FindFirst "ProductName =" & "'Produkt CCC'"Om .NoMatch DåMsgBox "Ingen matchning hittades"AnnanMsgBox ourRecordset.Fields ("Produktkategori")Avsluta omSluta medAvsluta Sub

Resultatet är:

Radera en post från en inspelningsuppsättning

För att ta bort en post från en Recordset måste du först göra den till den aktuella posten med Recordset.FindFirst -metoden. Du kan sedan radera det med Recordset.Delete -metoden. Följande kod visar hur du tar bort post 2 i datamängden:

1234567891011121314151617181920212223 Sub RecordSet_DeleteRecord ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetStäll in ourDatabase = CurrentDbAnge ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med vår inspelning.FindFirst "ProductName =" & "'Produkt BBB'"Om .NoMatch DåMsgBox "Ingen matchning hittades"AnnanourRecordset.DeleteAvsluta omSluta med'Öppna bordet igenDoCmd.Close -tabell, "ProductsT"DoCmd.OpenTable "ProductsT"Avsluta Sub

Resultatet är:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave