Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

setfocus auf das selbe Textfeld setzen

Begonnen von Lalikowski, Januar 24, 2022, 11:49:25

⏪ vorheriges - nächstes ⏩

Lalikowski

hallo,

ich schon wieder...

Wie kann ich den Focus wieder auf das selbe Feld setzen, wenn eine Bedingung nicht erfüllt worden ist.

If Me!Text_Spitzen < 1 Then
    MsgBox "Spitzen mind. 1!"
    cancel = true
    End If

So läuft das nicht....:-(



MzKlMu

Hallo,
das Codeschnippsel reicht nicht für einen Hinweis.
Du sagst ja noch nicht mal wo der Code angelegt ist.
Bitte Code vollständig zeigen.
Gruß Klaus

Lalikowski

#2
...sorry

Private Sub Text_Spitzen_LostFocus()
   If Me!Text_Spitzen < 1 Then
      MsgBox "Spitzen mind. 1!"
   End If
End Sub

MzKlMu

#3
Hallo,
LostFocus kann nicht abgebrochen werden, das zuerst gezeigte Cancel=True ist daher sinnlos.
Verwende das Ereignis "Vor Aktualisierung".
Private Sub Text_Spitzen_BeforeUpdate(Cancel As Integer)
    If Nz(Me.Text_Spitzen, 0) = 0 Then
        MsgBox "Spitzen mind. 1"
        Cancel = True
    End If
End Sub
Nz ist erforderlich um auch leere Felder abzufangen.
Cancel kann nur verwendet werden, wenn es auch im Prozedurkopf steht.
Das ganze lässt sich auch ohne Code über eine Gültigkeitsregel direkt in der Tabelle anlegen, mit eigener Meldung. Das Feld ist dann auf "Eingabe erderlich=Ja" einzustellen. Das funktioniert sehr einfach und zuverlässig.

Anmerkung:
Um den Benutzer nicht mit ständigen MsgBox'en zu nerven, legt man die Datenvalidierung isn das Formularereignis "Vor Aktualisierung" und prüft dort alle Felder mit Pflichteingaben.
Gruß Klaus

Lalikowski

....leider funktioniert das bei mir nicht.

Die Bedingung wird nicht geprüft und somit auch nicht alles andere...:-(

Lalikowski

...Habe den Fehler gefunden.

Habe den code beim Ereignis "Beim Verlassen" hinterlegt und es funktioniert ausgezeichnet....

Danke

MzKlMu

Hallo,
Zitathinterlegt und es funktioniert ausgezeichnet....
Dann solltest Du für Mitleser auch den Code hier zeigen der zur Lösung führt.
Gruß Klaus

Lalikowski

#7
....sehr gerne
Private Sub Text_Spitzen_Exit(Cancel As Integer)
If Nz(Me.Text_Spitzen, 0) = 0 Then
        MsgBox "Spitzen mind. 1"
        Cancel = True
    End If
End Sub