Få adgang til VBA Recordsets - Open, Count, Loop og mere

I denne vejledning lærer vi, hvordan man åbner et rekordsæt, tæller antallet af poster i rekordsættet, går gennem rekordsættet, tilføjer en post, opdaterer en post, læser en værdi fra en post og sletter en post.

Vi har et adgangstabel, kaldet ProductsT vist nedenfor:

Åbning af et pladesæt

Vi skal først oprette den database, vi agter at bruge, i dette tilfælde er det den aktuelt åbnede database. Vi kan derefter bruge metoden CurrentDB.OpenRecordSet til at åbne/oprette vores rekordsæt.

For at oprette et rekordsæt, der tillader os at manipulere dataene i tabellen kaldet ProductsT, ville vi bruge følgende kode:

1 CurrentDb.OpenRecordset ("ProdukterT")

Tæller antallet af poster ved hjælp af VBA

Når du har oprettet et Recordset, vil du mere end sandsynligt gerne gøre noget nyttigt med det eller manipulere dataene i det på en eller anden måde. Du kan tælle antallet af poster i dit datasæt (i dette tilfælde tabellen kaldet ProductsT) ved hjælp af følgende kode:

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

Looping gennem et RecordSet ved hjælp af VBA

Følgende kode sløjfer gennem vores RecordSet:

1234567891011121314 Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetIndstil ourDatabase = CurrentDbIndstil ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Gør indtil voresRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextSløjfeAfslut Sub

Tilføjelse af en post til et RecordSet

Brug metoden Recordset.AddNew til at tilføje en ny post til RecordSet:

1234567891011121314 Sub RecordSet_Add ()Med CurrentDb.OpenRecordset ("ProdukterT").Tilføj ny! [Produkt -ID] = 8! [ProductName] = "Produkt HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Legetøj"! [UnitsInStock] = 15.OpdaterAfslut medAfslut Sub

Resultatet er:

Opdatering af et rekordsæt

Du skal bruge metoden Recordset.AddNew eller Recordset.Edit. Efter denne erklæring skal du bruge metoden Recordset.Update for at beholde ændringerne.

Læsning af værdier fra en rekord

Du skal bruge metoden Recordset.FindFirst til at lave en post, den aktuelle post. Du skal derefter bruge Recordset.Fields til at angive, hvilket felt der skal kigges på.

12345678910111213141516 Sub RecordSet_ReadValue ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetIndstil ourDatabase = CurrentDbIndstil ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med voresRecordset.FindFirst "ProductName =" & "'Produkt CCC'"Hvis .NoMatch SåMsgBox "Ingen match fundet"AndetMsgBox ourRecordset.Fields ("Produktkategori")Afslut HvisAfslut medAfslut Sub

Resultatet er:

Sletning af en post fra et rekordsæt

For at slette en post fra et Recordset skal du først gøre den til den aktuelle record ved hjælp af Recordset.FindFirst -metoden. Du kan derefter slette det ved hjælp af metoden Recordset.Delete. Følgende kode viser, hvordan man sletter post 2 i datasættet:

1234567891011121314151617181920212223 Sub RecordSet_DeleteRecord ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetIndstil ourDatabase = CurrentDbIndstil ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med voresRecordset.FindFirst "ProductName =" & "'Produkt BBB'"Hvis .NoMatch SåMsgBox "Ingen match fundet"AndetourRecordset.DeleteAfslut HvisAfslut med'Åbn bordet igenDoCmd.Close -tabel, "ProdukterT"DoCmd.OpenTable "ProdukterT"Afslut Sub

Resultatet er:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave