User Tools

Site Tools


vba:access:classes:temptabledef

This is an old revision of the document!


[VBA][Access] TempTableDef

EineKlasse um mit TempTables zuarbeiten

Version 1.0.0 02.03.2017
Das Modul hat versteckte Attribute. Damit diese aktiv übernommen werden reicht es nicht aus, den Code in ein neues Modul zu kopieren. Man muss das Modul aus der Datei nach VBA importieren.
Bild zum Import

Download temptabledef.cls (V-1.0.0)

Die Klasse erstellt eine Tabelle und verwaltet sie selbständig. Die Tabellen können Userabhängig sein, sich nur halten während die Klasseninstanz existiert. Müssen aber nicht. Zudem muss man sich nicht um den Namen kümmern. DieKlasse kann SQLs parsen um den Namen zu ersetzen.

Hier mal schnell ein kleines Beispiel

Public Sub temp()
    Dim tmp As TempTableDef
    Set tmp = TempTableDef("t_1").createBySqlSelect("select * from ADDON_SEQUENZ where start_nr = 1")
 
    'Den wirklichen Namen anzeigen
    '-> #TMP_Yaslaw_t_1
    Debug.Print tmp.tempName
 
    'Einen Update auf die TempTable absetzen
    tmp.execute "update t_1 set seq_name = 'N/A' where seq_name = ''"
 
    'Ein Select absetzen und anzeigen
    'http://wiki.yaslaw.info/doku.php/vba/access/functions/printrs
    printRs tmp.openRecordset("select t.* from [t_1] t inner join [dual] d on t.start_nr = d.id")
 
    'Die Tabelle #TMP_Yaslaw_t_1 wird automatisch gelöscht, weil hier die Instanz abgebaut wird und ttdScopeClass gesetzt ist
    'Es wird nicht nachgefragt
End Sub
#TMP_Yaslaw_t_1
SEQ_NAME                                                                                                                                                                                                                                                        | START_NR | LAST_NR | LAST_TIMESTAMP     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------|--------------------
N/A                                                                                                                                                                                                                                                             | 1        | 4       | 15.03.2017 14:13:48
e                                                                                                                                                                                                                                                               | 1        | 3       | 15.01.2016 08:50:45
test                                                                                                                                                                                                                                                            | 1        | 4       | 01.07.2016 09:55:38
Test 1                                                                                                                                                                                                                                                          | 1        | 3       | 01.03.2016 10:11:00
Test 12

Definitionen

Für die Ausgabe der Resultate verwendete ich die Funktion print_r() bzw. d().

Compile-Settings

Am Anfang der Klasse hat es Compile-Settings. Falls die entsprechenden Module von mir im Projekt vorhanden sind, können die entsprechenden Settings auf True gestellt werden. Die Ausgaben in die Konsole oder in das LogFile können damit verbessert werden. Sie sind abernicht zwingend!

SQLScript

Die Klasse kann für [VBA][Access] Klasse SQLScript erweitert werden

#Const SQLScript_exists = False

Creatoren

Es gibt verschiedene Möglichkeiten eine TempTableDef zu initialisieren

Methode Rückgabetyp Beschreibung
instance TempTableDef Erstellt eine neue Instance
construct TempTableDef Initialisiert ein bestehendes Objekt neu

Auslöser

Die folgenden Funktion werden verwendet um eine Tabelle anzulegen

Methode Rückgabetyp Beschreibung
createBySqlSelect TempTableDef Erstellt eine Tabelle aus dem Resultat eines SQLs
createBySqlCreate TempTableDef Erstellt eine Tabelle anhand eines Create-Table Statement
vba/access/classes/temptabledef.1494837736.txt.gz · Last modified: 15.05.2017 10:42:16 by yaslaw