Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Nächsten Datensatz nicht anzeigen bevor Pflichtfeld nicht eingetragen





Frage

Hallo, möchte das das Pflichtfeld Ansprechpartner1 auf alle Fälle eingetragen wird bevor zum nächsten Datensatz geklickt werden kann. Habe diesen Code: --------------------------------------------------------- Private Sub Ansprechpartner1_GotFocus() If IsNull(Ansprechpartner1) Then MsgBox "Eingabe des Ansprechpartner1 erforderlich", vbOKOnly, "Ansprechpartner1" Ansprechpartner1.SetFocus End If End Sub --------------------------------------------------------- Währe ideal wenn die MsgBox erst aufpoppt wenn der Anwender auf "nächsten Datensatz anzeigen" klickt, dann aber auch verhindert wird das der nächste Datensatz angezeigt wird bevor nicht das Feld Ansprechpartner1 gefüllt wird. Bei der Funktion GotFocus() wird dies umgangen indem man einfach die Box wegklickt und dann einfach ins ein anderes Feld klickt. Brauchte also ne bessere Funkiton als GotFocus() oder so... Jemand ne idee? Gruss

Antwort 1 von RalfH

Das ganze einfach auf "Vor Aktualisierung"

Antwort 2 von Pheaton

Hi Ralf,
du meinst ..._BeforeUpdate(Cancel As Integer)???

Private Sub Ansprechpartner1_BeforeUpdate(Cancel As Integer)
If IsNull(Ansprechpartner1) Then
MsgBox "Eingabe des Ansprechpartner1 erforderlich", vbOKOnly, "Ansprechpartner1"
Ansprechpartner1.SetFocus
End If
End Sub

Tangiert das Programm nicht-kommt jetzt gar keine MsgBox und ich kann ohne Beanstandung den nächsten Datensatz anzeigen!
Komisch oder falsche Funktion?

Antwort 3 von erik

Nimm das VorAktualisierung-Ereignis des Formulars, das wird auf jeden Fall ausgeführt, wenn du zuvor den Datensatz geändert hast. Wenn du dort mit deinen Prüfungen nicht zufrieden bist, dann verhinderst du die Speicherung mit

Cancel = True

Antwort 4 von Pheaton

Sorry verstehe jetzt nur noch Bhf :-(

Ist das so gemeint?:

Private Sub Ansprechpartner1_BeforeUpdate(Cancel As Integer)
If IsNull(Ansprechpartner1) Then
MsgBox "Eingabe des Ansprechpartner1 erforderlich", vbOKOnly, "Ansprechpartner1"
Ansprechpartner1.SetFocus
Cancel = True
End If
End Sub

funktioniert leider auch nicht.....

P.S.: liegts vielleicht daran das ich datensätze habe bei denen das feld schon ausgefüllt ist und welsche die dort leer sind?
eigentlich nicht, oder? deswegen habe ich ja die kontrollstruktur if....

Antwort 5 von Pheaton

...jetzt fällt mir noch was ein das eventl. relevant sein könnte:
habe ein unterformular im formular und die kontrollsruktur ist im unterformular-kann das das problem sein?
eigentlich ja nicht, denn wenn ich lostFocus bzw. getFocus benutze (sehe 1.Post) dann zeigt er mir ja die MsgBox!

Antwort 6 von Marie

If IsNull(Me![Ansprechpartner1]) schon probiert?

Antwort 7 von erik

Das Formular selbst hat ein BeforeUpdate-Ereignis, nicht nur das Steuerelement. Du brauchst das Ereignis des Formulars.

Private Sub Form_BeforeUpdate(Cancel As Integer)

Antwort 8 von Pheaton

Hi Marie,
die Kontrollstruktur funktioniert ja (--> wenn ich lostFocus() benutze zeigt er mir ja die MsgBox ) mein Problem ist das, obwohl ich Cancel=True drin habe er mich zum nächsten Datensatz lässt nach dem ich die MsgBox wegdrücke??

Hi erik,
habe natürlich (in meinem Wahn) auch schon das BeforeUpdate-Ereignis auch für´s Formular schon Probiert - negativ!
Hab ne neue Idee-werde die Access Buttons unten deaktivieren/ausblenden Eigene Buttons für letzter/nächster/neuer Datensatz erstellen und die müsste ich ja dann deaktivieren können fals meine Pflichtfelder nicht ordnungsgemäß ausgefüllt sind!
Danke für euere mühen!
p.s.: fals jemand zu meinem Problem doch noch einen Geistesblitz haben sollte, immer her damit! :-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: