Få tilgang til VBA Recordsets - Open, Count, Loop og mer

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

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:

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:

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave