Hozzáférés a VBA rekordkészletekhez - Nyitott, Számolás, Hurok és egyebek

Ebben az oktatóanyagban megtanuljuk, hogyan kell megnyitni egy rekordkészletet, megszámolni a rekordok számát a rekordkészletben, végiglapozni a rekordkészletet, hozzáadni egy rekordot, frissíteni egy rekordot, elolvasni egy értéket egy rekordból és törölni egy rekordot.

Van egy hozzáférési táblázatunk, az alábbiakban látható ProductsT néven:

Rekordkészlet megnyitása

Először létre kell hoznunk a használni kívánt adatbázist, ebben az esetben ez a jelenleg megnyitott adatbázis. Ezután használhatjuk a CurrentDB.OpenRecordSet metódust a rekordkészletünk megnyitásához/létrehozásához.

Annak érdekében, hogy létrehozzunk egy rekordkészletet, amely lehetővé teszi számunkra, hogy manipuláljuk a ProductsT nevű táblázat adatait, a következő kódot használjuk:

1 CurrentDb.OpenRecordset ("ProductsT")

Rekordok számának számlálása VBA segítségével

Miután létrehozott egy rekordkészletet, több mint valószínű, hogy szeretne valami hasznosat tenni vele, vagy valamilyen módon manipulálni a benne lévő adatokat. A következő kód használatával megszámolhatja az adathalmaz rekordjainak számát (ebben az esetben a ProductsT nevű táblázatot):

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

Looping a RecordSet -en VBA használatával

A következő kód a RecordSet -en keresztül halad:

1234567891011121314 Sub RecordSet_Loop ()Dimenzió az adatbázisunkat adatbáziskéntDim aRecordset mint RecordsetÁllítsa be a OurDatabase = CurrentDbÁllítsa be ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Tedd a OurRecordset.EOF -igMsgBox ourRecordset! ProductIDourRecordset.MoveNextHurokEnd Sub

VBA programozás | A kódgenerátor működik az Ön számára!

Rekord hozzáadása a RecordSet -hez

A Recordset.AddNew módszerrel adjon hozzá új rekordot a RecordSethez:

1234567891011121314 Sub RecordSet_Add ()A CurrentDb.OpenRecordset segítségével ("ProductsT").Új hozzáadása! [Termékazonosító] = 8! [ProductName] = "Termék HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Játékok"! [UnitsInStock] = 15.FrissítésVége ezzelEnd Sub

Az eredmény:

Rekordkészlet frissítése

A Recordset.AddNew vagy a Recordset.Edit metódust kell használnia. Ezen állítás után a Recordset.Update metódust kell használnia a módosítások megtartásához.

Értékek olvasása rekordból

A Recordset.FindFirst metódust kell használni a rekord, az aktuális rekord létrehozásához. Ezután a Recordset.Fields használatával kell megadni, hogy melyik mezőt kell nézni.

12345678910111213141516 Sub RecordSet_ReadValue ()Dimenzió az adatbázisunkat adatbáziskéntDim aRecordset mint RecordsetÁllítsa be a OurDatabase = CurrentDbÁllítsa be ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)A mi Rekordkészletünkkel.FindFirst "ProductName =" & "'Product CCC'"Ha .NoMatch thenMsgBox "Nincs találat"MásMsgBox ourRecordset.Fields ("ProductCategory")Vége HaVége ezzelEnd Sub

Az eredmény:

Unod már a VBA kódpéldák keresését? Próbálja ki az AutoMacro -t!

Rekord törlése rekordkészletből

Annak érdekében, hogy töröljön egy rekordot egy rekordkészletből, először a jelenlegi rekordnak kell lennie a Recordset.FindFirst módszerrel. Ezt követően törölheti a Recordset.Delete módszerrel. A következő kód bemutatja, hogyan lehet törölni a 2. rekordot az adatkészletből:

1234567891011121314151617181920212223 Sub RecordSet_DeleteRecord ()Dimenzió az adatbázisunkat adatbáziskéntDim aRecordset mint RecordsetÁllítsa be a OurDatabase = CurrentDbÁllítsa be ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)A mi Rekordkészletünkkel.FindFirst "ProductName =" & "'Product BBB'"Ha .NoMatch thenMsgBox "Nincs találat"MásmiRecordset.DeleteVége HaVége ezzel-Nyissa ki újra az asztaltDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProductsT"End Sub

Az eredmény:

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave