BEISPIEL
Aktuelle Datenbank verwenden:
Set db = CurrentDB()
Neues TableDef-Objekt erstellen:
Set td = db.CreateTableDef("Verbindung zu Paradox-Tabelle")
Verbindungsoptionen einstellen:
td.Connect = "Paradox 4.x;DATABASE=c:\paradox;PWD=geheim"
td.SourceTableName = "Kunden"
Tabellendefinition in Datenbank einfügen:
db.TableDefs.Append td
Zugriff auf die Tabelle:
Set dy = db.OpenRecordset("Verbindung zu Paradox-Tabelle")
...
Direktes Öffnen (langsamer als Einbinden) einer Paradox-Tabelle (DAO):
Dim db As Database
Dim dy As Recordset
Datenbank öffnen:
Set db = OpenDatabase("c:\paradox\", False, False, "Paradox 4.x")
Recordset erstellen:
Set dy = db.OpenRecordset("Kunden")
Textdateien (TXT/ASC/CSV)
Im Zusammenhang mit dem Export von Daten in eine Textdatei sollte auch der Texttreiber der Daten-
bank-Engine nicht vergessen werden. Über das dabei verwendete Format entscheiden die Einstellungen in
der Registrierdatenbank.
Konvertierungseinstellungen in der Registry
Zuständig ist der Schlüssel
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text
bzw. (für die ACE)
\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Text
567
Zugriff auf Fremdformate
HINWEIS
BEISPIEL
Kapitel 9: Fortgeschrittene Datenbankprogrammierung
der folgende Einträge aufweist:
Abbildung 9.40 Registry-Einträge für Texttreiber
Wichtig dürften vor allem die Einträge Format, FirstRowHasNames und CharacterSet sein:
Eintrag Wert Beschreibung
Format TabDelimited Tabulator-Trennzeichen zwischen den Spalten.
CSVDelimited CSV-Format (Zeichenketten in Anführungszeichen,
Trennzeichen ist das Komma).
Delimited (X) X steht für ein beliebiges Trennzeichen (außer dem Anführungszeichen).
FirstRowHasNames 00 In der ersten Zeile stehen keine Spaltennamen.
01 In der ersten Zeile stehen die Spaltennamen.
CharacterSet OEM AnsiToOem-Konvertierung wird vorgenommen.
ANSI Speichern im ANSI-Format.
Tabelle 9.21 Bedeutung der Registry-Einträge
Der Eintrag DisabledExtensions ist auf den ersten Blick recht missverständlich, beachten Sie jedoch das Aus-
rufezeichen am Anfang des Eintrags. Dieses zeigt eine Negation an, womit die eingetragenen Extensions für den Zugriff freige-
geben sind.
Auslesen einer Textdatei (ADO):
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim f As ADODB.Field
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:\TEMP;"
rs.Open "SELECT * FROM [test.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText
While Not rs.EOF
568
BEISPIEL
For Each f In rs.Fields
Debug.Print f.Name & "=" & f.Value
Next f
rs.MoveNext
Wend
Verwendung einer Schema.ini für den Import/Export
Die Verwendung der Registry-Einträge für die Parametrierung des Textfilters dürfte auf die Dauer kaum
praktikabel sein, insbesondere wenn verschiedenartige Textdateien aus unterschiedlichen Quellen einzule-
sen sind. Hierfür bietet sich mit der Verwendung einer Schema.ini-Datei eine sinnvolle Alternative.
Der grundsätzliche Ablauf entsprecht dem Vorgehen mit der Registrierdatenbank. Der Unterschied ist, dass
Sie innerhalb der Schema.ini (gleiches Verzeichnis wie die zu importierende Datei) auch mehrere
Sektionen für unterschiedliche Dateien vorsehen können.
Schema.ini
[tblPersonal.txt]
ColNameHeader=True
Format=Delimited(;)
MaxScanRows=0
CharacterSet=OEM
[tblMitarbeiter.csv]
ColNameHeader=False
Format=CSVDelimited
MaxScanRows=500
CharacterSet=ANSI
Col1=Employee_number Char Width 255
Col2=First_Name Char Width 255
...
Der Inhalt der Datei tblPersonal.txt:
Abbildung 9.41 CSV-codierte Textdatei
569
Zugriff auf Fremdformate
Kapitel 9: Fortgeschrittene Datenbankprogrammierung
Die Parameter im Einzelnen:
Entry Description
ColNameHeader True, wenn die erste Zeile die Spaltennamen enthält
Format Einer der folgenden Werte: TabDelimited, CSVDelimited, Delimited (<Zeichen>), FixedLength
MaxScanRows Anzahl der Zeilen, die zum Bestimmen des Datentyps durchsucht werden (0=alle)
CharacterSet Zeichensatz (OEM oder ANSI)
DateTimeFormat Formatstring für das Datumsformat
CurrencySymbol Währungssymbol (Default = Systemeinstellung)
CurrencyPosFormat Position des Währungszeichens (Default = Systemsteuerung)
CurrencyDigits Anzahl der Nachkommastellen (Default = Systemeinstellung)
CurrencyNegFormat Format negativer Währungswerte (Default = Systemeinstellung)
CurrencyThousandSymbol Tausender-Trennzeichen für Währungswerte (Default = Systemeinstellung)
CurrencyDecimalSymbol Dezimaltrennzeichen für Währungswerte (Default = Systemeinstellung)
DecimalSymbol Dezimaltrennzeichen (Default = Systemeinstellung)
NumberDigits Anzahl der Nachkommastellen (Default = Systemeinstellung)
NumberLeadingZeros Führende Nullen anzeigen (Default = Systemeinstellung)
Spalte1,
Spalte2,
...
Liste der Spalten im Format Coln = Spaltenname Type [ Breite ]
Spaltenname: Spaltennamen mit Leerzeichen sollten in eckige Klammer eingeschlossen werden.
Type: Bit, Byte, Short, Long, Currency, Single, Double, DateTime, Text oder Memo.
Tabelle 9.22 Mögliche Parameter für Schema.ini
Mehrfach war die Rede von einer »Systemeinstellung«, diese finden Sie in der Systemsteuerung bei Regions
und Sprachoptionen:
Abbildung 9.42 Einstellungen in der Systemsteuerung
570

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.