MS Access / VBA -- Event Handling im Formular?

2 Antworten

Du könntest das OnClick-Ereignis des Formulars abfangen und in der Ereignisbehandlung prüfen, welches Element den Fokus hat.

Woher ich das weiß:Berufserfahrung – Programmierer
Esxalon 
Fragesteller
 15.01.2020, 11:32

Danke! Hast du nen kleinen Codeschnippsel o.ä. für mich? Beuntze ich google, finde ich immer nur Beispiele in denen das onclick eines bestimmten Steuerelements abgefangen wird, ich weiß nicht wie ich das quasi fürs ganze Formular machen kann.

0
Suboptimierer  15.01.2020, 11:56
@Esxalon

Meine Tests ergaben, dass meine Idee nicht zielführend ist.

Versuch einmal, beim Laden des Formulars bei allen oder ausgewählten Controls das Click-Ereignis zu definieren. Das könnte so aussehen:

Public Function Ele_Click()
 Debug.Print "Aktives Control: " & Me.ActiveControl.Name
End Function

Private Sub Form_Open(Cancel As Integer)
 'Textfeld.OnClick = "=Ele_Click()"
 'Zahlfeld.OnClick = "=Ele_Click()"
 '...
 Dim ctrl As Control
 For Each ctrl In Me
  ctrl.OnClick = "=Ele_Click()"
 Next
End Sub
1

du kannst den textfeldern im Entwurfsmodus unter den Eigenschaften den Ereignissen auch Functions zuordnen.

Esxalon 
Fragesteller
 15.01.2020, 12:53

Das will ich gerade nicht machen, da wenn irgendwann neue Textfelder hinzukommen, ich das immer wieder machen muss.

0
LtLTSmash  15.01.2020, 13:31
@Esxalon

du kannst ja vorhandene kopieren, dann ist das schon verknüpft. Du brauchst damit zumindest nur eine VBA Funktion.

0