W tym samouczku dowiemy się, jak otworzyć zestaw rekordów, policzyć liczbę rekordów w zestawie rekordów, przejść przez zestaw rekordów, dodać rekord, zaktualizować rekord, odczytać wartość z rekordu i usunąć rekord.
Mamy tabelę dostępu o nazwie ProductsT pokazaną poniżej:
Otwieranie zestawu nagrań
Najpierw musimy ustalić bazę danych, z której zamierzamy korzystać, w tym przypadku jest to aktualnie otwarta baza danych. Następnie możemy użyć metody CurrentDB.OpenRecordSet, aby otworzyć/utworzyć nasz zestaw rekordów.
Aby stworzyć zestaw rekordów, który pozwoli nam manipulować danymi w tabeli o nazwie ProductsT, użyjemy następującego kodu:
1 | CurrentDb.OpenRecordset ("ProduktyT") |
Zliczanie liczby rekordów za pomocą VBA
Po utworzeniu zestawu rekordów najprawdopodobniej będziesz chciał zrobić z nim coś pożytecznego lub w jakiś sposób manipulować zawartymi w nim danymi. Możesz policzyć liczbę rekordów w swoim zbiorze danych (w tym przypadku tabeli o nazwie ProductsT) za pomocą następującego kodu:
1 | MsgBox CurrentDb.OpenRecordset("ProduktyT").RecordCount |
Zapętlanie zestawu rekordów przy użyciu VBA
Poniższy kod zapętla się w naszym RecordSet:
1234567891011121314 | Podrzędna pętla zestawu rekordów ()Przyciemnij naszą bazę danych jako bazę danychPrzyciemnij nasz zestaw rekordów jako zestaw rekordówUstaw naszą bazę danych = CurrentDbUstaw ourRecordset = ourDatabase.OpenRecordset("ProduktyT")Rób do czasu naszegoZestawuRekordów.EOFMsgBox nasz zestaw rekordów!ID produktunaszZestawRekordów.PrzenieśDalejPętlaNapis końcowy |
Programowanie VBA | Generator kodu działa dla Ciebie!
Dodawanie rekordu do zestawu rekordów
Użyj metody Recordset.AddNew, aby dodać nowy rekord do RecordSet:
1234567891011121314 | Podrzędny zestaw rekordów_Add()Z CurrentDb.OpenRecordset("ProduktyT").Dodaj nowe![IDProduktu] = 8![NazwaProduktu] = "Produkt HHH"![CenaProduktuZaJednostkę] = 10![ProductCategory] = "Zabawki"![JednostkiWMagarze] = 15.AktualizacjaKończyć zNapis końcowy |
Wynik to:
Aktualizacja zestawu rekordów
Musisz użyć metody Recordset.AddNew lub Recordset.Edit. Po tej instrukcji należy użyć metody Recordset.Update, aby zachować zmiany.
Odczytywanie wartości z rekordu
Musisz użyć metody Recordset.FindFirst, aby utworzyć rekord, bieżący rekord. Następnie musisz użyć Recordset.Fields, aby określić, na które pole patrzeć.
12345678910111213141516 | Podrzędny zestaw rekordów_wartość odczytu ()Przyciemnij naszą bazę danych jako bazę danychPrzyciemnij nasz zestaw rekordów jako zestaw rekordówUstaw naszą bazę danych = CurrentDbUstaw ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Z naszym zestawem rekordów.FindFirst "Nazwa produktu = " i "'CCC produktu'"Jeśli .NoMatch toMsgBox "Nie znaleziono dopasowania"W przeciwnym razieMsgBox ourRecordset.Fields("Kategoria produktu")Zakończ, jeśliKończyć zNapis końcowy |
Wynik to:
Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!
Usuwanie rekordu z zestawu rekordów
Aby usunąć rekord z Recordset, musisz najpierw uczynić go bieżącym rekordem za pomocą metody Recordset.FindFirst. Następnie można go usunąć za pomocą metody Recordset.Delete. Poniższy kod pokazuje, jak usunąć rekord 2 w zestawie danych:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Przyciemnij naszą bazę danych jako bazę danychPrzyciemnij nasz zestaw rekordów jako zestaw rekordówUstaw naszą bazę danych = CurrentDbUstaw ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Z naszym zestawem rekordów.FindFirst "ProductName = " i "'Produkt BBB'"Jeśli .NoMatch toMsgBox "Nie znaleziono dopasowania"W przeciwnym razienaszZestawRekordów.UsuńZakończ, jeśliKończyć z„Ponownie otwórz stół”DoCmd.Close acTable, "ProduktyT"DoCmd.OpenTable "ProduktyT"Napis końcowy |
Wynik to: