Application Listener gesucht

Hallo zusammen,

kennt jemand ne Möglichkeit sowas wie nen Application Listener unter Access zu implementieren?

Ich kenne das von Excel, da kann man das in einem Klassenmodul realisieren. Ist halt die Frage, ob das auch in Access möglich ist.
Die 1:1-Kopie funktioniert jedenfalls nicht.

Es wäre schön, wenn ich Formularaufrufe abfangen könnte, da ich eine unliebsame Einblendung erhalte. Es handelt sich um ein POP-Up eines
Shareware-Steuerelements, das geschlossen werden soll, sobald es auftaucht. Leider kann ich nicht feststellen wann genau das Fenster eingeblendet wird. Das ist unterschiedlich. Und da das Formular nicht von mir ist, kann ich auch kein Event-Handler für das Formular konstruieren. Ich würde die Vollversion des Steuerelementes kaufen,
aber die Firma gibt es nicht mehr.

Hat jemand ne Idee?

Danke & Gruß

Hob

  • WinXP, Office 2000 -

Hallo,

wenn das Klassenmodul in Excel funktioniert, sollte das auch in Access gehen.

Poste mal den Code.

Vermutlich werden API-Funktionen benutzt, die periodisch alle geöffneten Windows-Fenster auf ihren Titel hin untersuchen und an das betreffende Fenster eine Message schicken.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

’ **************************************************************
’ Modul: clsExcelApp Typ = Klassenmodul
’ **************************************************************

Option Explicit
Public WithEvents ExcelWatch As Application

Private Sub ExcelWatch_WorkbookActivate(ByVal Wb As Workbook)
MsgBox „Das Workbook " & Wb.Name & " wurde aktiviert“
End Sub

Private Sub ExcelWatch_SheetActivate(ByVal Sh As Object)
MsgBox „Das Sheet " & Sh.Name & " von Mappe: " & Sh.Parent.Name & " wurde aktiviert“
End Sub

Private Sub ExcelWatch_NewWorkbook(ByVal Wb As Workbook)
MsgBox „Es wurde eine neue Mappe: " & Wb.Name & " erstellt“
End Sub

’ **************************************************************
’ Modul: UserForm1 Typ = Userform
’ **************************************************************

Option Explicit
Dim oKlasseExcel As clsExcelApp

Private Sub CommandButton1_Click()
Workbooks.Add
If Sheets.Count > 2 Then Sheets(2).Activate
ThisWorkbook.Activate
End Sub

Private Sub UserForm_Initialize()
Set oKlasseExcel = New clsExcelApp
Set oKlasseExcel.ExcelWatch = Application
End Sub

Private Sub UserForm_Terminate()
Set oKlasseExcel = Nothing
End Sub

Das Beispiel stammt von
http://www.online-excel.de/excel/singsel_vba.php?f=58

Ich habe es unter Excel getestet. Nach der Deklaration der Public WithEvents steht ExcelWatch als Auswahl im VBE-Fenster (linke ComboBox, ‚(Allgemein)‘) zur Verfügung und ich kann im Event-Fenster
jede Menge Events auswählen. Unter Access hab ich das nicht hinbekommen.

Viele Grüße

Hob

  • WinXP, Office 2000 -