Hallo liebe Accessfreunde,
ich habe ein Formular erstellt und möchte erreichen, dass ein Datensatz nur angelegt wird, wenn bestimmte Kriterien erfüllt sind. Sind alle Kriterien erfüllt, soll der Datensatz angelegt werden. In meinem Fall soll im Kombinationsfeld cboeinkaVersiIDRef des Formulars ein Wert stehen. Ist der Wert vom Kombinationsfeld = NULL dann soll kein Datensatz angelegt werden. Leider wird immer ein neuer Datensatz angelegt. Hier mein bisheriger Code:
Private Sub cboeinkaVersiIDRef_Exit(Cancel As Integer)
'Den Cursor zwingen im Kombinationsfeld zu bleiben, bis der Inhalt <> 0 ist.
If IsNull(Me!cboeinkaVersiIDRef) Then
MsgBox "EXIT Der Inhalt von cboeinkaVersiIDRef ist: Null " & vbCrLf & "bitte eine Versionsbezeichnung eingeben"
Cancel = True
Me!cboLadenTextIDRef.Enabled = False
Me!cboMarkeTextIDRef.Enabled = False
Me!cboProduProNaIDRef.Enabled = False
Me!cboProduvepckArtIDRef.Enabled = False
Me!cboProduInhaltGewicht.Enabled = False
Me!cboProduVerpaEinheitIDRef.Enabled = False
Me!cboProduPreis.Enabled = False
Me.AllowAdditions = False
Else
Me!cboLadenTextIDRef.Enabled = True
Me!cboMarkeTextIDRef.Enabled = False
Me!cboProduProNaIDRef.Enabled = False
Me!cboProduvepckArtIDRef.Enabled = False
Me!cboProduInhaltGewicht.Enabled = False
Me!cboProduVerpaEinheitIDRef.Enabled = False
Me!cboProduPreis.Enabled = False
End If
End Sub
Habt ihr eine Idee, wie ich das bewerkstelligen kann?
Das BeforeUpdate (Vor Aktualisierung) Ereignis des Formulars ist gut geeignet um solche Prüfungen durchzuführen.
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!cboeinkaVersiIDRef.Value) Then
MsgBox "Der Inhalt von cboeinkaVersiIDRef ist: Null " & vbCrLf & "bitte eine Versionsbezeichnung eingeben"
Cancel = True
End If
End Sub
Wenn das ganze eine "harte" Regel ist, die niemals umgangen werden darf, würde ich zusätzlich unbedingt das Feld in der Tabelle auf Required=Yes (Eingabe Erforderlich=Ja) stellen.
Hallo PhilS,
Danke, dass war sehr hilfreich und funktioniert super.