Hinweis bei doppelter Eingabe imm Datensatz
Karl Donaubauer
Gesendet: 31.01.12 16:48
Betreff: RE: Hinweis bei doppelter Eingabe im Datensatz



Elite Veteran

Beiträge: 848
50010010010025
Ort: Wien
marusek1 - 31.01.12
Die Tabelle besteht aus Spalten: ID(Autowert), Datum, AP1, AP2,AP3, .....AP30. Datum ist indiziert. Spalten AP... werden über Kombifelder mit 30 verschiedenen Namen(Herkunft: Abfrage) befüllt. Hintergrund: es soll kein Name in diesem Datensatz 2mal vorkommen. Danke für die Antwort.

Bist du sicher, dass dein Datenmodell ok ist? Wenn 30 Textfelder eine Abhängigkeit aufweisen, klingt das verdächtig danach, als solltest du eher eine eigene Tabelle mit Fremdschlüssel zur o.a. ID anlegen, in der diese 30 Werte zu Datensätzen werden.

Wenn du hingegen so weitermachen willst/musst, wäre eine Möglichkeit eine VBA-Funktion in der Art:

Function fctCheckForDups() As Boolean

Dim strCtlVal As String
Dim i As Long, j As Long

If IsNull(Screen.ActiveControl.Value) Then Exit Function

strCtlVal = Screen.ActiveControl.Value

For i = 1 To 30
If Me("AP" & i).Value = strCtlVal Then
j = j + 1
End If
Next i

If j > 1 Then
fctCheckForDups = True
MsgBox "Das geht ja gar nicht!", vbCritical, "Doppelte Eingabe"
End If

End Function

Diese Funktion kopierst du ins Formularmodul, hängst noch eine Fehlerbehandlung rein und rufst sie in einem passenden Ereignis auf. z.B. kannst du alle Kombis auf einmal markieren und in die Eigenschaft "Nach Aktualisierung" den Funktionsnamen eintragen, also:

=fctCheckForDups()

Wenn du die Eingabe verhindern/abbrechen willst, kannst du eher das Ereignis "Vor Aktualisierung" der Kombis nützen und nach der MsgBox noch ein
DoCmd.CancelEvent
reinschreiben.

-----
Servus
Karl
*********
https://www.donkarl.com/devcon Access-Online-Konferenz 18.+19.4.
Access Forever: https://www.accessforever.org
Access News: https://www.youtube.com/playlist?list=PLVCeBbJIMDvdJ8ghMbEakJ6_EQyvy...
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Top of the page Bottom of the page