Neuigkeiten:

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

Mobiles Hauptmenü

sofortiger .SetFocus beim Wechsel des Datensatzes

Begonnen von KonradR, Juli 31, 2024, 09:45:45

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich möchte, dass wenn ich den Datensatz in einem Formular wechsle, der Fokus sofort auf ein bestimmtes Steuerelement verschoben wird. Hierzu habe ich folgenden VBA-Code erstellt:
Private Sub ZutatSammlversiIDRef_LostFocus()
    Forms("frm00BWT_Haupt").Controls("sfrmBWTEinkaufsliste_Unter").Controls("cboProdukt").SetFocus
End Sub
Das funktioniert auch super, so lange ich im gleichen Datensatz bin bzw. bei einem Datensatzwechsel mindestens das erste Steuerelement des ersten Datensatzes im Formular ausgewählt habe. Nun möchte ich, dass beim Datensatzwechsel, der Fokus sofort auf das gewünschte Steuerelement gelegt wird, ohne den Fokus auf das erste Steuerelement zu legen. Dazu habe ich folgenden Code  erstellt:
Private Sub ZutatSammlversiIDRef_GotFocus()
    Forms("frm00BWT_Haupt").Controls("sfrmBWTEinkaufsliste_Unter").Controls("cboProdukt").SetFocus
End Sub
In Kombination also:
Private Sub ZutatSammlversiIDRef_GotFocus()
    Forms("frm00BWT_Haupt").Controls("sfrmBWTEinkaufsliste_Unter").Controls("cboProdukt").SetFocus
End Sub

Private Sub ZutatSammlversiIDRef_LostFocus()
    Forms("frm00BWT_Haupt").Controls("sfrmBWTEinkaufsliste_Unter").Controls("cboProdukt").SetFocus
End Sub
Doch dann erscheint folgende Fehlermeldung:
Sie dürfen in diesem Board keine Dateianhänge sehen.
Wie kann ich erreichen, dass nachdem der Datensatz im Formular gewechselt wird, der Fokus sofort auf das gewünschte Steuerelement im aktuellen, neuen Datensatz springt, ohne den Fokus auf das erste Steuerelement zu legen? Schon im Voraus vielen Dank.
  •  

PhilS

Zitat von: KonradR am Juli 31, 2024, 09:45:45Doch dann erscheint folgende Fehlermeldung:
Der Fehler entsteht, weil du den Focus nicht verschieben kannst, während ein Steuerelement gerade dabei ist den Focus zu bekommen (GotFocus).

Zitat von: KonradR am Juli 31, 2024, 09:45:45Wie kann ich erreichen, dass nachdem der Datensatz im Formular gewechselt wird, der Fokus sofort auf das gewünschte Steuerelement im aktuellen, neuen Datensatz springt, ohne den Fokus auf das erste Steuerelement zu legen? Schon im Voraus vielen Dank.
Das Form_Current-Ereignis tritt ein, wenn ein Datensatz der aktuelle Datensatz wird. Das erscheint mir ein guter Moment, um das aktive Steuerelement festzulegen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor
  •  

KonradR

Hallo Phils,

danke für deinen Tip. Ich hatte jetzt noch folgende Idee, die hervorragend funktioniert:
Private Sub ZutatSammlversiIDRef_GotFocus()
    Forms("frm00BWT_Haupt").Controls("sfrmBWTEinkaufsliste_Unter").Controls("cboProdukt").SetFocus
End Sub
Ich habe also das LostFocus - Ereignis weggelassen und der Fokuswechsel tritt nur dann auf, wenn der Datensatzwechsel erfolgt, weil ja das Textfeld ZutatSammlversiIDRef immer das erste Feld in einem Datensatz ist. Manchmal ist weniger mehr.
  •