TKSoft-Online

Arbeiten mit TempVars PDF Drucken E-Mail
( 0 Votes )
MS-Access Bsp. DB's - Bsp. Downloads Sonstiges
  
Freitag, den 25. März 2011 um 00:00 Uhr

Problemstellung:

Benutzt man globale Variablen kommt es bei unbehandelten Laufzeitfehler zum Verlust des Variableninhaltes.

es ist auf jeden Fall ein Neustart der DB erforderlich im schlimmsten Fall kommt es zu Datenverlusten.

Wie kann ich das umgehen?

Ab Access 2007 gibt es das Objekt TempVars. Diese behalten auch bei unbehandelten Laufzeitfehlern ihren Inhalt

 

Voraussetzungen:

Das Bsp ist ab A2007 lauffähig. (Download enthält eine accdb-Datei)


Lösung:

Ich möchte hier für das TempVar-Objekt nur die 4 wichtigsten Methoden aufzeigen.
 


Public Function NewTempVar(sVarName As String, vTempValue As Variant)
    TempVars.Add sVarName, vTempValue
End Function

Public Function GetTempVarValue(sVarName As StringAs Variant
    GetTempVarValue = TempVars(sVarName)
End Function

Public Sub RemoveTempVar(sVarName As String)
    TempVars.Remove (sVarName)
End Sub

Public Sub AllRemoveTempVars()
    TempVars.RemoveAll
End Sub

 
Die erste Funktion erstellt eine neue Variable und füllt Diese.
z.B. mit dem Pfad der aktuellen DB (Name der Variablen =DB_Path):


NewTempVar "DB_Path", CurrentProject.Path

Ist der Variablenname bereits vorhanden wird der Inhalt einfach mit dem neuen Wert überschrieben. (s. Bsp-DB)
 
Mit der 2. Funktion wird der Inhalt der Variablen abgerufen.


Dim x As String
x = GetTempVarValue("UserName")

 
Die 3. und 4. Sub ermöglichen entweder eine Variable oder alle Variablen zu löschen.
 
In der Bsp-DB werden 4 Variablen erstellt und gefüllt.


Private Sub Form_Load()
    'Füllen der TempVars
    NewTempVar "UserName", ShowUserName()

    NewTempVar "TempFolder", GetTempFolder()

    NewTempVar "CurrentVersion", GetAccVersAndSP()

    NewTempVar "DB_Path", CurrentProject.Path
End Sub


Ergebnis:
 
tempvar1
Gleichzeitig werden auch 4 globale Variablen mit den den gleichen Werten gefüllt.


Private Sub Form_Load()
    'Füllen der öffentlichen Variablen
    sUser = ShowUserName()
    sTempPath = GetTempFolder()
    sAccVersion = GetAccVersAndSP()
    sDBPath = CurrentProject.Path
End Sub

tempvar3
 
Um eine Übersicht zu behalten können alle Variablen der TempVars-Auflistung angezeigt werden( s. frm_Liste):


Private Sub Form_Load()
    Dim vVar As TempVar
    For Each vVar In TempVars
        Me.lst_TempVars.AddItem vVar.Name & ";" & vVar.Value
    Next vVar
End Sub

tempvar2
Kommen wir nun zum eigentlichen Nutzen des TempVar-Objektes.
Wir lösen nun im Form mit dem Button "Fehler auslösen" einen unbehandelten Laufzeitfehler aus.
tempvar4
Dann öffnen wir mit dem Button "Auflistung aller TempVars" die Liste und siehe da, der Inhalt der Variablen ist weiterhin vorhanden.
Das Gleiche prüfen wir mit den Buttons für die globalen Variablen.
tempvar5
Die sind nun leer.
 
Also ich denke damit dürfte der Vorteil von TempVars ggü. globalen Variablen bewiesen sein.
 
 
Arbeiten mit dem TempVars-Objekt

Arbeiten mit dem TempVars-Objekt
ab A2007

Die Zip-Datei enthält eine Version für A07/10




Erstellt am
Dateigröße
Downloads
25.03.2011
33.04 KB
190


Downloads in dieser Kategorie

MS-Access Sonstiges

MS-Access Sonstiges

 Seite: 1


 



 
DatumKlicks
Total1521
Di. 226
Mo. 211
So. 202
Sa. 192
Fr. 183
Mi. 164
Di. 158
Aktualisiert ( Mittwoch, den 19. Oktober 2011 um 12:56 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173426 Downloads