Supportnet / Forum / Datenbanken
DBF- Datei über VBA Importieren
Frage
Hallo,
Ich möchte gerne eine DBF-Datei über VBA importieren. Leider meldet mir Access:" Das Format dBase ist kein installiertes Datenbankformat".
Was mach ich falsch ????
DoCmd.TransferDatabase acImport, "dBase IV", "strSourceImportFolder", acTable, "C:\STATWIN\*.dbf", "tbl_Messwerte"
Gruß Ralf
Antwort 1 von Teddy7
geht´s denn händisch - also in der Access-Tabellensicht importieren ?
Antwort 2 von RalfH
ja das geht
Antwort 3 von Teddy7
steht die Datenquelle in strSourceImportFolder ?
Ist das vielleicht eine Variable ?
Dann solltest Du vielleicht mal die " weglassen.
Ist das vielleicht eine Variable ?
Dann solltest Du vielleicht mal die " weglassen.
Antwort 4 von RalfH
Hallo Teddy,
Wenn ich die weglasse geht garnix mehr.
Habe was neues ausprobiert:
Function Holen()
Dim db As Database
Dim td As TableDef
Dim dy As Recordset
Set db = CurrentDb()
Set td = db.CreateTableDef("ralfneu")
td.Connect = "dBASE III;Database=c:\STATWIN\"
td.SourceTableName = "ralf.dbf"
Set dy = db.OpenRecordset("ralf")
End Function
Bei " Set dy = db.OpenRecordset("ralf") " schmeisst Access mir ein Fehler 13 Typenunverträglichkeit um die Ohren ??
Wenn ich die weglasse geht garnix mehr.
Habe was neues ausprobiert:
Function Holen()
Dim db As Database
Dim td As TableDef
Dim dy As Recordset
Set db = CurrentDb()
Set td = db.CreateTableDef("ralfneu")
td.Connect = "dBASE III;Database=c:\STATWIN\"
td.SourceTableName = "ralf.dbf"
Set dy = db.OpenRecordset("ralf")
End Function
Bei " Set dy = db.OpenRecordset("ralf") " schmeisst Access mir ein Fehler 13 Typenunverträglichkeit um die Ohren ??
Antwort 5 von Teddy7
Was soll denn "ralf" sein ?
//////////////////////////////////////////////////
Alternativlösung ist natürlich, die Datenbank über ODBC-Treiber anzusprechen und die Tabellen der Datenbank einfach in Access(Tabellensicht) zu verknüpfen.
Dann kannst Du die Tabelle als recordset ansprechen - da gehört dann aber statt "ralf" ein select hin.
Gruß
Teddy
//////////////////////////////////////////////////
Alternativlösung ist natürlich, die Datenbank über ODBC-Treiber anzusprechen und die Tabellen der Datenbank einfach in Access(Tabellensicht) zu verknüpfen.
Dann kannst Du die Tabelle als recordset ansprechen - da gehört dann aber statt "ralf" ein select hin.
Gruß
Teddy
Antwort 6 von RalfH
Hab jetzt das dickste Brett vorm Kopf, kannste ein wenig konkreter werden ?
Antwort 7 von Teddy7
Was soll ich noch sagen ?
Im Windows :
start - einstellungen - systemsteuerung - verwaltung - datenquellen(odbc)
einrichten für dbase-dateien mit dem entsprechenden Treiber
Dann kann man im Access (genauso als würde man eine Tabelle aus einer Access-Backend-Datenbank anlinken) die Tabellen aus dbase anlinken und so verarbeiten als wären es Access-Tabellen.
/// mit oracle-Datenbanken geht das / mit dbase hab ich noch nicht gearbeitet ///
Gruß
Teddy
Im Windows :
start - einstellungen - systemsteuerung - verwaltung - datenquellen(odbc)
einrichten für dbase-dateien mit dem entsprechenden Treiber
Dann kann man im Access (genauso als würde man eine Tabelle aus einer Access-Backend-Datenbank anlinken) die Tabellen aus dbase anlinken und so verarbeiten als wären es Access-Tabellen.
/// mit oracle-Datenbanken geht das / mit dbase hab ich noch nicht gearbeitet ///
Gruß
Teddy
Antwort 8 von ChipMonk
hey ralf,
probier doch mal das:
DoCmd.TransferDatabase [acImport], "dBase IV", "C:\STATWIN\", [acTable], "xyz.dbf", "tbl_Messwerte"
ich gehe davon aus, dass die dbf-Datei bei dir im C:\STATWIN\ ordner drin liegt. den eigentlichen namen der dbf-Datei ersetzt du... also statt xyz.dbf schreibst du den namen deiner datei (nicht den ganzen pfad).
Gruß,
ChipMonk
probier doch mal das:
DoCmd.TransferDatabase [acImport], "dBase IV", "C:\STATWIN\", [acTable], "xyz.dbf", "tbl_Messwerte"
ich gehe davon aus, dass die dbf-Datei bei dir im C:\STATWIN\ ordner drin liegt. den eigentlichen namen der dbf-Datei ersetzt du... also statt xyz.dbf schreibst du den namen deiner datei (nicht den ganzen pfad).
Gruß,
ChipMonk
Antwort 9 von RalfH
@ ChipMonk
Super !!!! Klappt absolut klasse!
@Teddy
Danke für die Unterstützung
Super !!!! Klappt absolut klasse!
@Teddy
Danke für die Unterstützung

