Eingabe ueber Textfeld mit Tabelle vergleichen

Hallo zusammen,

ich moechte den eines Textfeld feldes direkt nach der Eingabe im Formular ueberpruefen, ob es diesen Wert schon in der Tabelle gibt.
Welchen VBA code muss ich dafuer anstelle der MsgBox eingeben, dass er mir den Eingabewert mit jeder Zeile der entsprechenden Spalte vergleicht?

Bin leider ziemlicher Anfaenger mit VBA und kenne mich nur ein bisschen in Excel aus. Ich weiss nicht, wie ich ueber VBA die Tabelle oder das Textfeld „ansprechen“ kann

Private Sub BPN_No_BeforeUpdate(Cancel As Integer)
MsgBox „Die eingegebene Nummer existiert schon“
End Sub

Vielen Dank fuer Eure Hilfe
Wolfgang

Hallo,

also ich das kann man folgendermassen machen: ( ich gehe mal von der DAO Variante aus)
Private Sub BPN_No_BeforeUpdate(Cancel As Integer)
Dim db as Database
Dim record as RecordSet
Dim sqlString as String

sqlString = "Select from where = " & BPN_No
oder falls das Datenfeld ein Textfeld ist
sqlString = „Select from where = '“ & BPN_No & „’“

set db = CurrentDb
set record = db.OpenRecordSet(sqlString)
if not record.EOF then
MsgBox „Die eingegebene Nummer existiert schon“
end if
End Sub

Nur eine der moeglichen Varianten

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Wolfgang,

ich moechte den eines Textfeld feldes direkt nach der Eingabe
im Formular ueberpruefen, ob es diesen Wert schon in der
Tabelle gibt.

öffne die Tabelle
klicke auf die Feldbezeichnung des Feldes
schau dir mal unten links die Zeile Index genau an :smile:

Grüße aus Essen
Wolfgang

Hallo Peter,

danke es funktioniert. Ich hatte aber Probleme mit den Variablen. Es erschien der Fehler TypMismatch. Ich habe die Variable record jetzt als Variant deklariert und es funktioniert.

@Wolfgang
Das Problem ist, das wenn ich die Option „Yes (No Duplicates)“ auswaehle, bekomme ich erst die Fehlermeldung, wenn ich alle Eingabefelder des Formulars ausgefuellt habe, und wenn ich 20 Eingabefelder habe ist es verlorene Zeit.

Gruss
Wolfgang

Hallo,

also ich das kann man folgendermassen machen: ( ich gehe mal
von der DAO Variante aus)
Private Sub BPN_No_BeforeUpdate(Cancel As Integer)
Dim db as Database
Dim record as RecordSet
Dim sqlString as String

sqlString = "Select from
where = " & BPN_No
oder falls das Datenfeld ein Textfeld ist
sqlString = „Select from
where = '“ & BPN_No &
„’“

set db = CurrentDb
set record = db.OpenRecordSet(sqlString)
if not record.EOF then
MsgBox „Die eingegebene Nummer existiert schon“
end if
End Sub

Nur eine der moeglichen Varianten

Tschau
Peter

Hallo zusammen,

ich moechte den eines Textfeld feldes direkt nach der Eingabe
im Formular ueberpruefen, ob es diesen Wert schon in der
Tabelle gibt.
Welchen VBA code muss ich dafuer anstelle der MsgBox eingeben,
dass er mir den Eingabewert mit jeder Zeile der entsprechenden
Spalte vergleicht?

Bin leider ziemlicher Anfaenger mit VBA und kenne mich nur ein
bisschen in Excel aus. Ich weiss nicht, wie ich ueber VBA die
Tabelle oder das Textfeld „ansprechen“ kann

Private Sub BPN_No_BeforeUpdate(Cancel As Integer)
MsgBox „Die eingegebene Nummer existiert schon“
End Sub

Vielen Dank fuer Eure Hilfe
Wolfgang