Thema Datum  Von Nutzer Rating
Antwort
12.04.2017 12:49:51 Philipp Meller
NotSolved
12.04.2017 18:35:32 BigBen
NotSolved
13.04.2017 07:17:14 Gast86686
NotSolved
Blau gotFocus von Button
13.04.2017 13:19:10 BigBen
NotSolved
13.04.2017 14:52:24 Philipp Meller
NotSolved
13.04.2017 17:09:05 BigBen
NotSolved
15.04.2017 10:55:07 Philipp Meller
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
13.04.2017 13:19:10
Views:
653
Rating: Antwort:
  Ja
Thema:
gotFocus von Button

Hallo,

nach einigen Testläufen habe ich eine Ersatzlösung gefunden :-)

Man braucht für ein Testlauf eine leere Access-DB.

Man erstellt ein Formular mit einer Schaltfläche (Name: Befehl0) und einem Bezeichnungsfeld (Name: lblInfo)

Im Codebereich des Formulars muss folgender VBA-Code eingefügt werden:

Option Compare Database
Option Explicit

Private WithEvents myEvents As clsMouseLeave

Private Sub Befehl0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    myEvents.ActualControl Me.Befehl0
End Sub

Private Sub Detailbereich_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    myEvents.ActualControl Me.Detailbereich
End Sub


Private Sub Form_Load()
    Set myEvents = New clsMouseLeave
    myEvents.ActualControl Me
End Sub

Private Sub myEvents_MouseLeave(ControlName As String)
    Me.lblInfo.Caption = ControlName & " / " & Now
End Sub

Als letztes erstellt man ein Klassenmodul mit dem Namen clsMouseLeave:

Option Compare Database
Option Explicit

Dim myControl As Object

Event MouseLeave(ControlName As String)

Sub ActualControl(ctrl As Object)
    If myControl Is Nothing Then
        Set myControl = ctrl
    Else
        If ctrl Is Nothing And Not myControl Is Nothing Then
            RaiseEvent MouseLeave(myControl.Name)
            Set myControl = ctrl
        Else
            If Not myControl.Name = ctrl.Name Then
                RaiseEvent MouseLeave(myControl.Name)
                Set myControl = ctrl
            End If
        End If
    End If
End Sub

Kurze Erläuterung:

Beim Öffnen wird die Klasse clsMouseLeave über Form_Load initialisiert.

Über das Events MouseMove wird der Klasse clsMouseLeave immer die derzeitige Control übermittelt. Daher müssen in allen Formular-Steuerelementen, für die das Event MouseLeave benötigt wird folgender Befehl eingesetzt werden:

myEvents.ActualControl Me.{Control]

Statt [Control] muss das entsprechende Control-Objekt übergeben werden.

Wann immer ein MouseLeave-Ereignis auftritt, wird im Formular folgende Sub ausgeführt:

Private Sub myEvents_MouseLeave(ControlName As String)
    
End Sub

In der Variable ControlName ist der Name des betreffenden Controls enthalten, der ausgewertet werden kann.

Eine Beispiel-Access-DB kann hier heruntergeladen werden.

LG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
12.04.2017 12:49:51 Philipp Meller
NotSolved
12.04.2017 18:35:32 BigBen
NotSolved
13.04.2017 07:17:14 Gast86686
NotSolved
Blau gotFocus von Button
13.04.2017 13:19:10 BigBen
NotSolved
13.04.2017 14:52:24 Philipp Meller
NotSolved
13.04.2017 17:09:05 BigBen
NotSolved
15.04.2017 10:55:07 Philipp Meller
NotSolved