Tom: VBA - spalte auf einzigartigkeit des Datensatztes Prüfen

Beitrag lesen

Hallo Korbinian

Versuchs mal mit folgendem Code:

Private Sub Formularfeldname_LostFocus()
    
       If Me!Formularfeldname.Value = DLookup("Spaltename", "Tabellename", "irgendeinFeld=10") Then
           MsgBox "Achtung: Wert ist doppelt"
      End If
    
   End Sub

Mit 'Me!Formularfeldname.Value' (.Value könnte auch weggelassen werden) liesst Du den aktuellen Feldwert in Deinem Formular aus.
Mit DLookup (entspricht im Funktionsassistent "DomWert") ermittelst Du einen Wert aus einer Domäne. Die Domäne ist die Tabelle (2. Argument), der Wert ist der Spaltenname der Tabelle (1.Argument). Mit dem 3. Argument kannst Du optional die Domäne (Menge der Datensätze) einschränken, wie bei einer WHERE-Klausel ohne "WHERE". Mehr dazu in der Access-Hilfe unter DLookup, bzw. DomWert.

Der Syntax ist ok, sonst ist der Code aber nicht weiter getestet.
Problematisch könnte hier die Rehenfolge der Ereignisse sein.
Tritt das Ereigniss "LostFocus" vor oder nach dem Aktualisieren des Datensatzes in der Tabelle auf?
Entsprechend müsste man die Prüfung ins Ereignis "Vor Aktualisieren" (BeforeUpdate) legen.

Grüsse
Tom