Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

selbstaufrufendes GotFocus verhindern

Begonnen von Doming, Mai 09, 2025, 09:16:34

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

ich versuche ,,freien Text" bei der Eingabe in ein Textfeld zu kanalisieren.
Ich habe ein Feld für Bemerkungen, welches für zusätzliche Informationen zum DS genutzt werden soll.
Dieses wird in der Vergangenheit gerne dazu genutzt, Info einzugeben, die ich gerne anderweitig als Schlüsselfeld nutzen würde, sowas wie ,,geht mit Lieferschein 12345 raus" oder ,,habe ich mit Tour 3456 mitgegeben".
Dazu möchte ich, sobald das Bemerkungsfeld angeklickt wird (GotFocus), eine im Normalfall unsichtbare Zeile auf der aktiven Zeile einblenden.
Private Sub BemSicht(An As Boolean)
    Me.KastenBem.Visible = An
    Me.DxBem.Visible = An
    Me.DxLS.Visible = An
    Me.DxLW.Visible = An
    If An Then
        Me.DxBem.SetFocus
    Else
        Me.DxBemerkung.SetFocus
    End If
End Sub
In der unsichtbaren Zeile ist ein Feld für die LieferscheinNr(DxLS), eins für die TourNr (DxLW) und ein drittes Feld für den ,,wirklichen" Freitext(DxBem). Bei Gotfocus von DxBemerkung rufe ich die Sub mit True Auf, nach Eingabe dann mit False. Ich hatte schon überlegt, vor dem Setzen des Fokus in der Sub eine boolsche Variable zu setzen, die das erneute Ausführen der Sub verhindert, aber die Variable muss ich dann ja auch zügig wieder zurücksetzen, damit man das Feld erneut aufrufen kann.
Gibt es eine Methode, dieses Problem zu umgehen?

Gruß
Doming



Knobbi38

Hallo Doming,

es ist für einen Aussenstehenden wirklich schwer zu verstehen, was du da beabsichtigst, aber grundsätzlich kann man eine Reentrance mit einer statischen boolean Variable in einer Ereignisprozedure verhindern. Ich weiß aber nicht, ob das dein Problem lösen könnte. Grundsätzlich würde ich zu einem anderen Design raten, welches weniger kompliziert ist. Eingriffe in das Fokushandling nimmt Access manchmal sehr Übel.

Gruß Knobbi38

Doming

#2
Hallo,

ich möchte ein seit Jahren bestehendes Formular so ändern, dass man beim versuchten Eintragen in das Bemerkungsfeld in ein ,,PopUp" verspringt, um dort den Lieferschein bzw die TourNr in eigens dafür vorgesehen Textfelder einträgt, damit man diese zwei Zahlen nicht (wie jetzt) aus einem Freitext herausfiltern muss.

Edit: Ich habe mir jetzt tatsächlich ein Popup-Formular gebaut, welches beim GotFocus aufgerufen wird. So war auch Platz für eine Erklärung, warum das Formular nicht wie gewohnt genutzt werden kann.

Gruß
 Doming