Klasseninstanz über die gesamte Lebensdauer der DB
enchiriadis
Gesendet: 20.01.17 13:52
Betreff: RE: Klasseninstanz über die gesamte Lebensdauer der DB


Member

Beiträge: 11

Hi Phil,

Dank für die Antwort und....

>>Wenn die beiden unterschiedlichen, oben fett markierten Variablennamen
>>nicht nur hier im Forum durcheinander geraten sind, ist das die Erklärung für dein Problem.


...den Hinweis.
Hatte am Tag danach gemerkt, dass die Deutlichkeit auf Kosten der Kürze ging. Glaube nicht, dass Deine Diagnose hier passt, aber das lag an meiner unzureichenden Beschreibung.

Ok..., aktueller Stand so kurz wie möglich, aber so lang wie nötig und so deutlich, wie ich's hinkriege.

(1)
Zunächst gibt es ein Klassenmodul clsBasics.
Die enthält die oben, im ersten Post, erwähnten ID's in Form von Membervariablen und Property Get/Let

(2)
Dann gibt es ein Modul mdlGlobals. Das enthält ein paar Konstanten, ein paar Maße, ein paar Typisierungsüberprüfungen.
So, und unter anderem gibt es in diesem mdlGlobals eine Variablenvereinbarung der Art

Public MyBasics As clsBasics

Diese Deklaration steht außerhalb jeder Funktion/Prozedur.

(3)
Beim Starten der DB werden zwei Funktionen aufgerufen, eine öffentliche und eine private.
Die öffentliche geht so:

Public Function StartDB()

Set MyBasics = New clsBasics
StartDB = SetPersistantValues

End Function


Die private Funktion ist die, die gerade eben in der öffentlichen aufgerufen wurde:

 

Private Function SetPersistantValues() As String

 

'suche Daten "dies und jenes"....

 

With MyBasics

.wert1 = "dies"

.wert2 = "jenes"

 end With

 

End Function

 

MyBasics ist in dieser privaten Funktion nicht mehr initialisiert, obwohl ich sie dort natürlich verwende - und eben gerne dauerhaft und von überall her verwenden würde. Meiner Ansicht nach sollte das Objekt MyBasics nach Aufruf der Funktion StartDB() existieren. Tut's aber nicht. Stattdessen krieg' ich einen Laufzeitfehler 9 (Obj.-Var nicht festgelegt). Ein Set MyBasic = Nothing gibt es nirgends, bzw. würde ich erst beim Herunterfahren der DB schreiben. MyBasics dürfte demnach da sein. Finde ich.

Leider findet Access was anderes und bleibt bislang in diesem Punkt durchaus anderer Meinung als ich. Andererseits ist doch bspw. CurrentDB nix anderes als ein Objekt, das während der gesamten Laufzeit des Programms permanent im Speicher liegt.

Danke für's Lesen..., hoffe, diesmal ist's deutlicher.

 

Grüße!

 

t.

 

Top of the page Bottom of the page