V tej vadnici se bomo naučili, kako odpreti nabor zapisov, šteti število zapisov v naboru zapisov, prečkati niz zapisov, dodati zapis, posodobiti zapis, prebrati vrednost iz zapisa in izbrisati zapis.
Spodaj je prikazana tabela dostopa, imenovana ProductsT:
Odpiranje nabora zapisov
Najprej moramo vzpostaviti bazo podatkov, ki jo nameravamo uporabiti, v tem primeru gre za trenutno odprto bazo podatkov. Nato lahko uporabimo metodo CurrentDB.OpenRecordSet za odpiranje/ustvarjanje našega nabora zapisov.
Za izdelavo nabora zapisov, ki nam bo omogočal manipulacijo s podatki v tabeli, imenovani ProductsT, bi uporabili naslednjo kodo:
1 | CurrentDb.OpenRecordset ("ProductsT") |
Štetje števila zapisov z uporabo VBA
Ko ustvarite nabor zapisov, bi verjetno želeli z njim narediti kaj koristnega ali na nek način manipulirati s podatki v njem. Število zapisov v naboru podatkov (v tem primeru tabelo z naslovom ProductsT) lahko preštejete z naslednjo kodo:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Ponavljanje skozi RecordSet z uporabo VBA
Naslednja koda se vrti skozi naš RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Zatemnite našo bazo podatkov kot bazo podatkovZatemnite naš Recordset kot zapis zapisaNastavite našo bazo podatkov = CurrentDbNastavite ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Naredite do našega zapisaRecordset.EOFMsgBox našRecordset! ProductIDourRecordset.MoveNextZankaEnd Sub |
Programiranje VBA | Generator kod deluje za vas!
Dodajanje zapisa v RecordSet
Z metodo Recordset.AddNew dodajte nov zapis v RecordSet:
1234567891011121314 | Sub RecordSet_Add ()S CurrentDb.OpenRecordset ("ProductsT").Dodaj novo! [ProductID] = 8! [ProductName] = "HHH izdelka"! [ProductPricePerUnit] = 10! [ProductCategory] = "Igrače"! [UnitsInStock] = 15.NadgradnjaKončaj sEnd Sub |
Rezultat je:
Posodabljanje nabora zapisov
Uporabiti morate metodo Recordset.AddNew ali Recordset.Edit. Po tem stavku morate uporabiti metodo Recordset.Update, da ohranite spremembe.
Branje vrednosti iz zapisa
Za zapis, trenutni zapis, morate uporabiti metodo Recordset.FindFirst. Nato morate z uporabo Recordset.Fields določiti, katero polje si želite ogledati.
12345678910111213141516 | Sub RecordSet_ReadValue ()Zatemnite našo bazo podatkov kot bazo podatkovZatemnite naš Recordset kot zapis zapisaNastavite našo bazo podatkov = CurrentDbNastavite našRecordset = ourDatabase.OpenRecordset ("ProductsT", Vrsta: = RecordsetTypeEnum.dbOpenDynaset)Z našim snemalnikom.FindFirst "ProductName =" & "'CCC izdelka" "Če .NoMatch PotemMsgBox "Ni ujemanja"Sicer paMsgBox ourRecordset.Fields ("ProductCategory")Konec ČeKončaj sEnd Sub |
Rezultat je:
Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!
Brisanje zapisa iz nabora zapisov
Če želite izbrisati zapis iz nabora zapisov, ga morate najprej narediti z metodo Recordset.FindFirst. Nato ga lahko izbrišete z metodo Recordset.Delete. Naslednja koda prikazuje, kako izbrisati zapis 2 v naboru podatkov:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Zatemnite našo bazo podatkov kot bazo podatkovZatemnite naš Recordset kot zapis zapisaNastavite našo bazo podatkov = CurrentDbNastavite našRecordset = ourDatabase.OpenRecordset ("ProductsT", Vrsta: = RecordsetTypeEnum.dbOpenDynaset)Z našim snemalnikom.FindFirst "ProductName =" & "'Izdelek BBB" "Če .NoMatch PotemMsgBox "Ni ujemanja"Sicer panašRecordset.DeleteKonec ČeKončaj s'Znova odpri mizoDoCmd.Close acTable, "ProductsT"DoCmd.OpenTabela "IzdelkiT"End Sub |
Rezultat je: