Access 2007, Late Binding

Problemquellen, Bugs, ...

Access 2007, Late Binding

Beitragvon Christoph Jüngling » Mi 14. Sep 2011, 16:26

Nachdem ein bekannter Redner ;) vor einiger Zeit mal ein Konzept vorgeschlagen hatte, mittels "late binding" einige Fallstricke der Verweise zu umgehen, habe ich das auch mal probiert, z.B. so:

Code: Alles auswählen
#If EARLY_BINDING Then
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
#Else
    Dim rs As Object
    Set rs = CreateObject("ADODB.Recordset")
#End If


Das funktioniert auch wunderbar, bis ich auf die Idee kam, dass Objekte ja auch Events werfen können. Also habe ich deklariert - bzw. wollte deklarieren:

Code: Alles auswählen
#If EARLY_BINDING Then
    Private WithEvents rsData As ADODB.Recordset
#Else
    Private WithEvents rsData As Object
#End If


Und saudummerweise mag VBA bei dem Typ "Object" offenbar keine Events fangen, was natürlich das ganze schöne Konzept wieder in Frage stellt.

Hat jemand eine Idee, wie man das lösen kann?

Thx,

Chris
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Access 2007, Late Binding

Beitragvon Josef Pötzl » Mi 14. Sep 2011, 18:02

Hallo!

WithEvents kann man nicht für Late-Binding-Variablen verwenden. Du könntest zur Not eine eigene Klasse zu Kapselung erstellen und darin über COM-Methoden auf die Ereignisse reagieren. ich bezweifle aber, dass sich dieser Aufwand lohnt. ;-)

Als Prinzip-Beispiel:
LateBindingEventBridge.zip
(89.71 KiB) 3093-mal heruntergeladen

.. LateBindingEventBridge.dll ist eine VB6-COM-dll, für die Kapselung der COM-Methoden.

mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Access 2007, Late Binding

Beitragvon Christoph Jüngling » Fr 30. Dez 2011, 17:24

Danke für den Tipp. Ich fürchte aber, um die Verweise wird man doch nicht herum kommen.
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Access 2007, Late Binding

Beitragvon Josef Pötzl » Di 3. Jan 2012, 15:54

Es geht theoretisch schon ohne ADODB-Verweise, ist aber um einiges aufwendiger. ;-)
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016


Zurück zu Fehlerquellen

cron