Ich habe eine Datenbank in Access 2010, wo das 1. Feld eine eindeutige Mitgliedsnummer ist. Das Feld ist Indiziert, keine Duplikate. Wenn ein Duplikat auf dem Eingabeformular eingegeben wird, wird keine Fehlermeldung angezeigt und nichts anderes funktioniert, bis eine eindeutige Nummer eingegeben wird. Ich benötige den Code, der den Fehler im Nummernfeld auffängt und den Fokus verliert, so dass ein Meldungsfeld den Benutzer über das Problem informiert und dann den Fokus zurück auf das Zahlenfeld setzt oder den Benutzer alle Eingaben abbrechen lässt. Diese ist das, was ich habe, und es verursacht Datentyp FehlerEindeutige Mitgliedsnummer in Access-Datenbank
Private Sub Grumpy_No_BeforeUpdate(Cancel As Integer)
If DLookup(Str("[Grumpy_No]"), "Grumpy", Str("[Grumpy_No]") = Me!Str(Grumpy_No)) Then
MsgBox "Number has already been entered in the database."
Cancel = True
Me!Grumpy_No.Undo
End If
End Sub
Irgendwelche Hinweise darauf, wo ich falsch werde sehr geschätzt werden würde
Klingt, als ob Sie nach dem [TextBox.BeforeUpdate Event] fragen (https://msdn.microsoft.com/en-us/library/office/ff845199.aspx) – HansUp
Sorry, ein Schmerz zu sein, aber ich bin ziemlich Neu bei Access. Ich kann sehen, dass Sie mit BeforeUpdate Event recht haben, aber es scheint nur mit Zeichenfeldern arbeiten zu wollen, die keine Ganzzahl sind. Ich habe versucht, die STR() -Funktion, aber immer erhalten Datentyp Fehler. Ich sollte erklären, mein Club ist ein Motorradclub namens "Grumpy Old Bastards" der Tisch ist "Grumpy" und das Feld ist "Grumpy_No", was ein Integer ist. –
Das ist, was ich habe: - Private Sub Grumpy_No_BeforeUpdate (Abbrechen als Integer) Wenn DLookup (Str ("[Grumpy_No]"), "Grumpy", Str ("[Grumpy_No]") = Ich! Str (Grumpy_No)) Dann MsgBox "Die Nummer wurde bereits in der Datenbank eingegeben." Abbrechen = True Me! Grumpy_No.Undo End If End Sub Irgendwelche Hinweise darauf, wo ich falsch werde würde sehr geschätzt. –