Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ACCESS + VBA - Sprawdzenie czy rekord jest w tabeli

szanlu 16 Sty 2017 22:54 720 1
  • #1 16 Sty 2017 22:54
    szanlu
    Poziom 9  

    Tabela Klienci i formularza dodawania nowego Klienta. Unikatowe pole to NIP. Jak przed dodaniem nowego Klienta przez formularz sprawdzić pole NIP w tabeli Klienci czy NIP nie istnieje w tabeli. Jeśli istnieje to wywala na msg box.
    VBA sprawdza NIP, porównuje go z odpowiednim polem w tabeli i wyrzuca wynik.
    Korzystam z DAO i recordset.

    0 1
  • #2 17 Sty 2017 08:36
    szanlu
    Poziom 9  

    Rozwiązałem to w następujący sposób:

    wyszukanie = "SELECT * from TKlient WHERE NIPKlient = '" & Me!txtNIPKlient & "';"
    Set db = CurrentDb
    Set rs = db.OpenRecordset(wyszukanie, dbOpenSnapshot)
    If rs.EOF = False Then
    MsgBox "UWAGA: Klient już dodany"
    Else
    MsgBox "Można dodać Klienta"
    End If

    End Sub

    Próbowałem jeszcze zrobić bardziej uniwersalne rozwiązanie w postaci funkcji jednak zatrzymałem się pewnie na poziomie mojej zbyt jeszcze małej wiedzy VBA:

    Public Function SzukajDubli(ByVal txtNIPKlient As String) As Integer
    SzukajDubli = DCount("NIPKlient", "TKlienci", "[NIPKlient] = forms![frmDodajKlienta]![txtNIPKlient]")
    If SzukajDubli > 0 Then
    MsgBox "NIP jest już w bazie"
    End If
    End Function

    Wywołanie funkcji w procedurze kończyło się błędem argumentu :(

    0