Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Sicherheitshinweis ---> für registrierte Mitglieder <-
TempVars-Collection - Stiefkind aus der Makroprogrammierung
Gehe zu Seite Zurück  1, 2
zurück: Datenexport aus Access in eine Excel-Vorlage weiter: Regionals-Funktionsbibliothek für regionale Formatumwandlung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Mr.MeToo2
Gast


Verfasst am:
25. Jul 2012, 13:51
Rufname:

AW: TempVars-Collection - Stiefkind aus der Makroprogrammier - AW: TempVars-Collection - Stiefkind aus der Makroprogrammier

Nach oben
       Version: (keine Angabe möglich)

Und wie prüfen ich, ob das Tempvar überhaupt vorhanden ist? Ich öffne eine Form und dabei soll er schauen, ob die TemVar überhaupt vorhanden ist.

Ich habe mehrere Sachen ohne Erfolg geprüft:
Code:
    If TempVars("ProjectID") <> 0 Then

    If Isnull(TempVars("ProjectID")) Then

    If IsEmpty (TempVars("ProjectID"))
Habt ihr eine Lösung?
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
25. Jul 2012, 14:07
Rufname:

AW: TempVars-Collection - Stiefkind aus der Makroprogrammier - AW: TempVars-Collection - Stiefkind aus der Makroprogrammier

Nach oben
       Version: (keine Angabe möglich)

Hallo,

da Du der Programmierer Deiner Anwendung bist, solltest Du ja wissen, welche Variablen Du hineingestellt hast. Wenn die Variable nicht existiert, wird NULL zurückgegeben, also ist "IsNull" zur Prüfung geeignet, allerdings besagt es nicht, ob die Variable schon vorhanden ist oder nicht. Eine Variant-Variable könnte ja auch den Wert NULL haben.

Das sollte aber auch nicht stören, denn wenn Du die Variable benötigst und Du erhältst NULL als Antwort, spielt es ja keine Rolle, ob sie schon existiert oder nicht, in dem Fall kannst Du die Variable ja in jedem Fall anlegen.

Im Gegensatz zu einer echten Collection erkennt TempVars selbst, ob die Variable schon existiert oder nicht und Du kannst in jedem Fall mit "Add" die Variable mit ihrem aktuellen Wert hinzufügen. Existiert sie noch nicht, wird sie angelegt. Existiert sie schon, wird ihr Wert mit dem neuen Wert überschrieben.

Gruß

Christian

PS.: Eine Funktion zum Testen, ob die Variable schon angelegt wurde, kann man so schreiben:
Code:
Public Function TempVarExists(strName As String) As Boolean
    Dim i As Long

    TempVarExists = False
    For i = 0 To TempVars.Count - 1
        If TempVars(i).Name = strName Then
            TempVarExists = True
            Exit For
        End If
    Next i
End Function
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
30. Mai 2013, 14:09
Rufname:


Neues zu den TempVars - Neues zu den TempVars

Nach oben
       Version: (keine Angabe möglich)

Hallo,

heute habe ich zufällig eine interessante Möglichkeit entdeckt, was man mit den TempVars noch machen kann: Die Verwendung als Parameter oder Spalte in einer Abfrage. Hiermit kann man auf einfache Weise eine Variable von VBA in einer Abfrage verfügbar machen:
Code:
SELECT A, B, C
FROM   MeineTabelle
WHERE  ID = [TempVars]!ID
oder
Code:
SELECT [TempVars]!ID AS MeineFesteSpalte, B, C
FROM   MeineTabelle
In beiden Fällen muß man vorher etwa mit:
Code:
TempVars("ID") = "1"
eine Variable "ID" in der TempVars-Collection anlegen und mit einem Wert versehen. Praktisch ist, daß man sich um den Datentyp nicht viel Sorgen machen muß, da Access das automatisch passend umwandelt, etwa im Vergleich der WHERE-Bedingung. Ebenso praktisch ist, daß es keine Fehlermeldung gibt, wenn die Variable noch nicht angelegt wurde, im WHERE-Beispiel würde eben kein Datensatz ausgegeben werden, im zweiten Beispiel eine leere Spalte. Es ist also nicht notwendig, erst eine ausgiebige Prüfung auf Existenz und Datentyp der Variablen vorzunehmen. Für VBA besonders praktisch: Man hat gleichzeitig eine globale Variable und man benötigt nicht extra eine Public Function in einem Standardmodul, um eine Variable für SQL zur Verfügung stellen zu können.

Mit der Methode kann man sicher eine Menge interessanter Dinge bewerkstelligen...

Viel Spaß beim Experimentieren

Christian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite Zurück  1, 2
Diese Seite Freunden empfehlen

Seite 2 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Programmierung / VBA: Makroprogrammierung mit Access 8 DENDEMANN 715 30. März 2007, 10:35
DENDEMANN Makroprogrammierung mit Access
Keine neuen Beiträge Access Programmierung / VBA: Makro-Programmierung 1 Scarlett1 1025 19. März 2006, 08:27
stpimi Makro-Programmierung
Keine neuen Beiträge Access Programmierung / VBA: Ich möchte Makroprogrammierung in Access lernen 8 koerschgen2001 1851 15. Nov 2005, 16:07
stpimi Ich möchte Makroprogrammierung in Access lernen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS