Variablendeklaration für den gesamten Modulbereich eines Formulars

31/01/2009 - 13:57 von Marion Hildebrandt | Report spam
Hallo NG,
Ich habe festgestellt , dass ich oft innerhalb eines Moduls eines Formulars
mehrfach die gleichen Variablen deklariere. Ich möchte diese Variablen jetzt
nur einmal zentral deklarieren und auch teilweise zentral einen bestimmten
Wert zuweisen.
z.Bsp. im Formular „Rechnungsausgang“ habe ich in einigen Subs folgende
Deklaration und Wertzuweisung:
Dim inBHTIndexTabelle As Integer
inBHTIndexTabelle = DLookup("IDVerwaltungIndex", "tblVerwaltungIndex",
"VIName= 'Rechnungsausgang'")
Wie erfolgt eine „zentrale“ Deklaration für das gesamte Modul und ist das
auch sinnvoll oder gibt es gravierende Nachteile? Vielen Dank für eine
Antwort.

Viele Grüße aus Hamburg
Marion
 

Lesen sie die antworten

#1 Michael Franke
31/01/2009 - 16:52 | Warnen spam
Hallo Marion,

Marion Hildebrandt schrieb:
Hallo NG,
Ich habe festgestellt , dass ich oft innerhalb eines Moduls eines Formulars
mehrfach die gleichen Variablen deklariere. Ich möchte diese Variablen jetzt
nur einmal zentral deklarieren und auch teilweise zentral einen bestimmten
Wert zuweisen.
z.Bsp. im Formular „Rechnungsausgang“ habe ich in einigen Subs folgende
Deklaration und Wertzuweisung:
Dim inBHTIndexTabelle As Integer
inBHTIndexTabelle = DLookup("IDVerwaltungIndex", "tblVerwaltungIndex",
"VIName= 'Rechnungsausgang'")
Wie erfolgt eine „zentrale“ Deklaration für das gesamte Modul und ist das
auch sinnvoll oder gibt es gravierende Nachteile? Vielen Dank für eine
Antwort.

Viele Grüße aus Hamburg
Marion



schau Dir mal folgendes Beispiel an (in einem Formularmodul):

Option Compare Database
Option Explicit
Private strName As String

Private Sub Form_Close()
MsgBox strName
End Sub

Private Sub Form_Open(Cancel As Integer)
strName = "Marion"
End Sub

Vorteil der Variable auf Modulebene ist, dass von allen Prozeduren des
Moduls auf sie zugegriffen werden kann und dass in ihr Werte
gespeichert bleiben, solange das Formular geöffnet ist. Umgekehrt muss
man natürlich auch bedenken, dass eine Modulvariable beim Start einer
Prozedur (hier: Form_Close) bereits einen Wert haben kann (weil dieser
zuvor von einer anderen Prozedur festgelegt wurde). Ob die Verwendung
sinnvoll ist, hàngt immer vom konkreten Umfeld ab.

Gruß, Michael

Ähnliche fragen