Uzyskaj dostęp do zestawów rekordów VBA - Open, Count, Loop i więcej

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

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:

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:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave