globale Variable über Application ansprechen

09/04/2010 - 10:17 von Joerg Wolf | Report spam
Hi NG,

ich öffne in Excel eine Accessdatenbank über ein access.application.object

Dim appAccess As New Access.Application
appAccess.OpenCurrentDatabase .

Ich möchte jetzt in der neu geöffneten Datenbank eine globale Variable TEST
ansprechen

Wie muß der Code dafür lauten?

Danke im Voraus

Gruß Jörg
 

Lesen sie die antworten

#1 Josef Poetzl
09/04/2010 - 10:45 | Warnen spam
Hallo!

Joerg Wolf schrieb:
ich öffne in Excel eine Accessdatenbank über ein access.application.object

Dim appAccess As New Access.Application
appAccess.OpenCurrentDatabase .

Ich möchte jetzt in der neu geöffneten Datenbank eine globale Variable TEST
ansprechen

Wie muß der Code dafür lauten?



Wenn du die globale Variable z. B. durch eine Property-Prozedur oder
Function ersetzt, kannst du sie mittels Eval abfragen.

In einem Access-Modul:

Private m_GLOBALEVARIABLE As Long
Public Property Get GLOBALEVARIABLE() As Long
GLOBALEVARIABLE = m_GLOBALEVARIABLE
End Property
Public Property Let GLOBALEVARIABLE(neuerWert As Long)
m_GLOBALEVARIABLE = neuerWert
End Property

Excel:
x = appAccess.Eval("GLOBALEVARIABLE()")


Zum Einstellen der Variable wirst du auf eine Sub bzw. Function
ausweichen müssen:

In einem Access-Modul:
Public Sub SetGLOBALEVARIABLE(byval neuerWert As Long)
m_GLOBALEVARIABLE = neuerWert
End Sub

Excel:
appAccess.Run "SetGLOBALEVARIABLE", x



Falls du bereits Ac2007 verwendest, könntest du auch überlegen, ob die
Application.TempVars verwendest.


Anm.: Ich selbst benutze globale Variablen nur in Ausnahmefàllen, da
mir die viel zu unsicher sind, weil sie von überall (aus jedem
beliebigen Code-Modul) veràndert werden könnten. Und wenn ich dann
einmal übersehe, dass ich sie in einem bestimmten Fall nicht mehr
àndern darf, weil der wert für einen anderen Prozess gerade benötigt
wird, kann es zu Fehlverhalten kommen und ich werden den Fehler
vermutlich gar nicht so schnell finden.


mfg
Josef

Code-Bibliothek für Access-Entwickler: http://access-codelib.net/
Access-FAQ von Karl Donaubauer: http://www.donkarl.com/

Ähnliche fragen