PDA

Vollständige Version anzeigen : Ereignis "VorDatensatzwechsel"


killepitsch
26.04.2011, 10:34
Hallo,

ich möchte ein Textfeld als Pflichtfeld deklarieren.
Hierzu würde ich gerne eine MsgBox anzeigen wenn das Feld nicht ausgefüllt wurde. Direkt bei Eingabe der Kundennummer übernimmt das Formular aus dem Ufo einige Angaben (leider nicht anders zu machen.)

BeforeUpdate kann ich nicht verwenden, da die Meldung dann direkt kommt wenn die Kundennummer eingetragen wird (sehr nervig).
BeimAnzeigen könnte ich verwenden allerdings kommt die Meldung erst dann, wenn der Datensatz bereits gewechselt wurde.
Wisst Ihr eine Lösung?
killepitsch

Toast78
26.04.2011, 10:37
Kann es sein, dass du hier vom BeforeUpdate der Kundennummer sprichst?
Dann nimm das BeforeUpdate des Formulars. Das ist genau für solche Sachen geeignet.

killepitsch
26.04.2011, 10:42
Ich meinte BeforeUpdate des Formulars. Durch das automatische Übernehmen der Daten aus dem Ufo wird der Datensatz bei Eingabe der Kundennummer direkt erstellt. Das kann ich daher leider nicht verwenden.

Beim Schließem des Formulars habe ich es so hinbekommen:
Private Sub Form_Unload(Cancel As Integer)
If Nz(Me!Textfeld, "") = "" Then
Cancel = True
MsgBox "Bitte etwas eintragen!"
End If
End Sub

Toast78
26.04.2011, 12:04
Daten übernehmen aus einem Unterformular? Scheint ein komisches Konstrukt zu sein.
Habe jetzt allerdings immer noch nicht verstanden, wo da das Problem liegt, die Prozedur dann zu erweitern.
Naja, funktioniert ja anscheinend so, wie du es haben willst.

ebs17
26.04.2011, 12:20
Durch das automatische Übernehmen der Daten aus dem Ufo wird der Datensatz bei Eingabe der Kundennummer direkt erstellt.
Du solltest Deinen Ablauf präzisieren:
- Ein Form_BeforeUpdate tritt nur beim Datensatz-Speichern ein, also solltest Du verfrühte Speichernversuche unterbinden.
- Alternativ oder im Kombination dazu könnte man auch Pflichtfeldern gültige Werte zuweisen (Standardwert o.a.), wenn man schon beim Zuweisen ist.

killepitsch
27.04.2011, 08:48
Wie kann man das denn ändern, dass der Datensatz nicht direkt gespeichert wird wenn die Daten aus dem Unterformular übernommen werden?
Wenn ich den u.g. Code auskommentiere klappt es einwandfrei, nur möchte ich den Kollegen die Arbeit ein wenig erleichtern.

Private Sub Adress_Nr_AfterUpdate()
On Error GoTo Err_btnKundeNichtGefunden_Click
DoCmd.RunCommand acCmdRefresh
Me!txt_Kunde = Forms!frm_Hfo!frm_Ufo!txt_Kundenname
Me!txt_Betreuer = Forms!frm_Hfo!frm_Ufo!txt_Betreuer
Exit_btnKundeNichtGefunden_Click:
Exit Sub
Err_btnKundeNichtGefunden_Click:
If Err.Number = 2113 Then
MsgBox "Kunde wurde nicht gefunden. Bitte die Kundennummer überprüfen!", vbExclamation + vbOKOnly
Else
MsgBox Err.Number & " " & Err.Description, vbCritical + vbOKOnly
End If
Resume Exit_btnKundeNichtGefunden_Click

End Sub

ebs17
27.04.2011, 09:48
DoCmd.RunCommand acCmdRefresh
Was macht das und wofür ist das gut?

killepitsch
27.04.2011, 11:31
Damit lasse ich das Unterformular aktualisieren, sodass die Informationen zu der eingegeben Kundennummer (im Hfo) angezeigt werden.