Wie definiere ich eine globale Variable?

Hallo zusammen,

ich brauche eine Variable, die ich mit Haupt- und Unterformularen befüllen und auch dann wieder auslesen kann.

Wie mache ich das am Besten?

Wäre super, wenn mir jemand helfen könnte und mir ein Beispiel aufzeigt.
Mit googlen hab ich keine Lösung gefunden

Danke
Sutti

Hallo Sutti,

Mit googlen hab ich keine Lösung gefunden…

warum in die Ferne schweifen, wenn die Antwort liegt so nahe? Mit F1 in Access bekommst du z.B. diese Erklärung:

Lebensdauer von Variablen

Die Zeit, in der eine Variable ihren Wert behält, wird Lebensdauer genannt. Der Wert einer Variablen kann sich während ihrer Lebensdauer ändern, sie behält aber irgendeinen Wert. Verläßt eine Variable ihren Gültigkeitsbereich, so verfügt sie über keinen Wert mehr.

Wenn eine Prozedur ausgeführt wird, werden alle Variablen initialisiert. Eine numerische Variable wird mit Null initialisiert, eine Zeichenfolge variabler Länge wird mit einer Null-Zeichenfolge ("") initialisiert und eine Zeichenfolge fester Länge wird mit dem ASCII-Zeichen 0 oder Chr(0) gefüllt. Variant-Variablen werden mit Empty initialisiert. Jedes Element einer Variablen eines benutzerdefinierten Typs wird so initialisiert, als wäre es eine separate Variable.

Wenn Sie eine Objektvariable deklarieren, wird Platz im Speicher reserviert, der Wert der Objektvariablen wird aber auf Nothing gesetzt, bis Sie ihr mit der Set-Anweisung einen Objektverweis zuweisen.

Wenn der Wert der Variablen während der Ausführung Ihres Codes nicht verändert wird, behält sie ihren initialisierten Wert, bis sie ihren Gültigkeitsbereich verläßt.

Eine auf Prozedurebene mit der Dim-Anweisung deklarierte Variable behält einen Wert, bis die Ausführung der Prozedur beendet wird. Ruft die Prozedur andere Prozeduren auf, behält die Variable während der Ausführung dieser Prozeduren ihren Wert.

Wird eine Variable auf Prozedurebene mit dem Schlüsselwort Static deklariert, behält die Variable ihren Wert so lange, wie Code in einem beliebigen Modul ausgeführt wird. Wenn die Ausführung des gesamten Codes beendet wird, verliert die Variable ihren Gültigkeitsbereich und ihren Wert. Ihre Lebensdauer entspricht der Lebensdauer einer Variablen auf Modulebene.

Eine Variable auf Modulebene unterscheidet sich von einer statischen Variablen. In einem Standardmodul oder einem Klassenmodul behält sie ihren Wert, bis die Ausführung des Codes angehalten wird. In einem Klassenmodul behält sie ihren Wert, solange eine Instanz der Klasse existiert. Variablen auf Modulebene benötigen Speicherressourcen, bis Sie deren Werte zurücksetzen; darum sollten Sie diese nur dann verwenden, wenn es unbedingt notwendig ist.

Wenn Sie das Schlüsselwort Static vor einer Sub- oder Function-Anweisung verwenden, werden die Werte aller Variablen auf Prozedurebene in der Prozedur zwischen Aufrufen beibehalten.

Wenn du dann noch unter „Siehe auch“ die weiteren Erklärungen aufrufst, findest du genaue Anweisungen für dein Problem.

Grüße aus Essen
Wolfgang
(Netwolf)

dankeschön.

Den Artikel hab ich nicht ganz verstanden.

Hab jetzt einfach STATIC für die Definition meiner Variable geschrieben und schon gehts. Ist meiner Meinung nach unschön, innerhalb eines Formulars eine Globale variable zu definieren. HAb keine Ahnung, wo man eigentlich globale Variablen definiert. Ich kenn das halt aus PASCAL, dass man im Main die globalen definiert und in den Procedures/Functions dann nur die für diesen Anruf.

Sutti