I denne opplæringen lærer vi hvordan du åpner et rekordsett, teller antall poster i rekordsettet, går gjennom rekordsettet, legger til en post, oppdaterer en post, leser en verdi fra en post og sletter en post.
Vi har et tilgangstabell, kalt ProductsT vist nedenfor:
Åpne et platesett
Vi må først etablere databasen vi har tenkt å bruke, i dette tilfellet er det den nåværende databasen. Vi kan deretter bruke CurrentDB.OpenRecordSet -metoden for å åpne/opprette vårt postsett.
For å lage et postsett som lar oss manipulere dataene i tabellen kalt ProductsT, ville vi bruke følgende kode:
1 | CurrentDb.OpenRecordset ("ProdukterT") |
Teller antall poster ved hjelp av VBA
Når du har opprettet et rekordsett, vil du mer enn sannsynlig gjøre noe nyttig med det eller manipulere dataene i det på en eller annen måte. Du kan telle antall poster i datasettet ditt (i dette tilfellet tabellen kalt ProductsT) ved å bruke følgende kode:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Sløyfe gjennom et RecordSet ved hjelp av VBA
Følgende kode sløyfer gjennom vårt RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetSett ourDatabase = CurrentDbSett ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Gjør inntil ourRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextLøkkeSlutt Sub |
VBA -programmering | Kodegenerator fungerer for deg!
Legge til en post i et RecordSet
Bruk metoden Recordset.AddNew for å legge til en ny post i RecordSet:
1234567891011121314 | Sub RecordSet_Add ()Med CurrentDb.OpenRecordset ("ProductsT").Legg til ny! [ProductID] = 8! [ProductName] = "Produkt HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Leker"! [UnitsInStock] = 15.OppdaterSlutt medSlutt Sub |
Resultatet er:
Oppdaterer et rekordsett
Du må bruke Recordset.AddNew eller Recordset.Edit -metoden. Etter denne uttalelsen må du bruke Recordset.Update -metoden for å beholde endringene.
Lese verdier fra en plate
Du må bruke Recordset.FindFirst -metoden for å lage en post, den gjeldende posten. Du må deretter bruke Recordset.Fields for å angi hvilket felt du skal se på.
12345678910111213141516 | Sub RecordSet_ReadValue ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetSett ourDatabase = CurrentDbSett ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med vårt opptak.FindFirst "ProductName =" & "'Product CCC'"Hvis .NoMatch DaMsgBox "Ingen treff funnet"EllersMsgBox ourRecordset.Fields ("Produktkategori")Slutt omSlutt medSlutt Sub |
Resultatet er:
Lei av å søke etter eksempler på VBA -kode? Prøv AutoMacro!
Slette en post fra et platesett
For å slette en post fra et platesett må du først gjøre den til gjeldende post ved hjelp av Recordset.FindFirst -metoden. Du kan deretter slette den ved hjelp av Recordset.Delete -metoden. Følgende kode viser hvordan du sletter post 2 i datasettet:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetSett ourDatabase = CurrentDbSett ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Med vårt opptak.FindFirst "ProductName =" & "'Produkt BBB'"Hvis .NoMatch DaMsgBox "Ingen treff funnet"EllersourRecordset.DeleteSlutt omSlutt med'Åpne bordet igjenDoCmd.Lukk tabell, "ProductsT"DoCmd.OpenTable "ProductsT"Slutt Sub |
Resultatet er: