Gelöst!
03.02.2004 08:03:57
PeterG
Fürs Archiv und alle Interessierten, so gehts:
Dim appAccess As Access.Application
Sub NeueAccessDatenbank()
Dim dbs As Database, tdf As TableDef, fld As Field, s%
' bei Verweis auf MS-ActiveX DATA Object Bibliothek wird zweimal
' die Field-Eigenschaft zur Verfügung gestellt, was zum Fehler führt
Dim strDB As String
' Die Zeichenfolge initialisieren, die den Pfad
' der Datenbank angibt.
strDB = "D:\SST\BH\NeueDB.mdb"
' Eine neue Instanz von Microsoft Access erstellen.
Set appAccess = CreateObject("Access.Application.8")
' Die Datenbank im Microsoft Access-Fenster öffnen.
Application.DisplayAlerts = False
Kill strDB
appAccess.NewCurrentDatabase strDB
Application.DisplayAlerts = True
' Die Database-Objektvariable einstellen.
Set dbs = appAccess.CurrentDb
' Eine neue Tabelle erstellen.
Set tdf = dbs.CreateTableDef("BSaetze")
' Felder für die neue Tabelle erstellen und anfügen
Set fld = tdf.CreateField("BuchDat", dbDate): tdf.Fields.Append fld
Set fld = tdf.CreateField("Ges", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("KK", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("Konto", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("UKonto", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("GKK", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("GKonto", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("GuKonto", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("BZ", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("AnwDat", dbDate): tdf.Fields.Append fld
Set fld = tdf.CreateField("LG", dbText): tdf.Fields.Append fld
Set fld = tdf.CreateField("Betrag", dbDouble): tdf.Fields.Append fld
Set fld = tdf.CreateField("Monat", dbText, 2): tdf.Fields.Append fld
Set fld = tdf.CreateField("Buchtxt", dbText): tdf.Fields.Append fld
'Das TableDef-Objekt anfügen.
dbs.TableDefs.Append tdf
' CSV - Datei importieren
Application.DisplayAlerts = False
DoCmd.TransferText , , "BSaetze", "D:\SST\BH\BuchungssaetzeGj.csv", True
' Fehler-Tabelle löschen
DoCmd.DeleteObject acTable, "BuchungssaetzeGj_Importfehler"
tdf.Fields("Buchdat").Name = "BuDat"
tdf.Fields("Buchtxt").Name = "Buchungstext"
' Datenbank schließen
appAccess.CloseCurrentDatabase
'Access beenden
Access.Application.Quit
Set appAccess = Nothing
End Sub