Addnew to jedna z metod obiektu Recordset, służaca do dodawania nowych rekordów w tabeli.

Ja zawsze używam tej metody przy dodawaniu nowych rekordów.
Stosuję do tego specjalny formularz, z niezwiązanymi polami.

Pod przyciskiem Zapis jest procedura sprawdzająca, czy wszystkie wymagane pola zostały wypełnione i jeżeli tak, otwierany jest Recordset i dane są zapisywane do tabeli. Jeżeli pola wymagane są puste (w tym przypadku – Autor i Tytuł) – następuje wyjście z procedury, wyświetlenie komunikatu i przeniesienie fokusu do tego pola..
Przycisk Anuluj zamyka formularz bez zapisywania.
Przykład procedury:
|
Private Sub PolecenieZapisz_Click() Dim RST As ADODB.Recordset Dim RAutor As String Dim RTytul As String Dim RDzial As Long Dim RCena As Currency Dim RBestseller As Boolean If IsNull(Me.TAutor) Then ’pole wymagane MsgBox „Wpisz autora!”, vbCritical, „Brak wymaganych danych” Me.TAutor.SetFocus Exit Sub Else RAutor = Me.TAutor End If If IsNull(Me.TTytul) Then ’pole wymagane MsgBox „Wpisz Tytuł!”, vbCritical, „Brak wymaganych danych” Me.TTytul.SetFocus Exit Sub Else RTytul = Me.TTytul End If If IsNull(Me.TDzial) Then ’jeżeli brak – to dział Różne RDzial = 11 Else RDzial = Me.TDzial End If If IsNull(Me.TBestseller) Then ’jeżeli brak – to fałsz RBestseller = False Else RBestseller = Me.TBestseller End If Set RST = New ADODB.Recordset RST.Open „TabelaKsiazki”, CurrentProject.Connection, adOpenDynamic, adLockOptimistic RST.AddNew With RST !Autor = RAutor !Tytul = RTytul !Dzial = RDzial !Bestseller = RBestseller If Not IsNull(Me.TCena) Then !Cena = Me.TCena .Update .Close End With Set RST = Nothing DoCmd.Close End Sub |
To naprawdę dobry sposób na dodawanie rekordów. Unika się w ten sposób generowania błędnych rekordów, z niepełnymi danymi i opuszczoną częścią pól.

