moeller67
Goto Top

Access-Datenbank auslesen und anfügen

Ich möchte die Daten aus einer externen MDB-Datei auslesen und in meine MDB-Datei übernehmen. Gleiche Tabellen, gleiche Feldstruktur. Einfach!?
Ja es wäre einfach über kopieren oder verknüpfen und Anfügeabfrage etc..

Nein, ich möchte über ein Fenster(ähnliche Explorer) die externe MDB-Datei auswählen, klicken und alle Daten der Tabellen der externen MDB werden werden an die Tabellen meiner MDB angefügt.

Info: Diese externe MDB-Datei hat immer einen anderen Namen und wird nach dem Einlesen des Inhaltes nicht mehr benötigt.

Ich hoffe ihr habt mich verstanden und könnt mir helfen.

Content-ID: 46814

Url: https://administrator.de/forum/access-datenbank-auslesen-und-anfuegen-46814.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

27234
27234 15.12.2006 um 10:38:25 Uhr
Goto Top
Hallo,

öffne eine vorhandene oder leere Datenbank, Datei --> Externe Daten --> Importieren -->
zu importierende Datenbank auswählen --> Importieren --> Alles auswählen --> OK

Gruß - Bolle97
moeller67
moeller67 15.12.2006 um 13:25:50 Uhr
Goto Top
Diese Möglichkeit ist mir auch bekannt.
- dann habe ich aber zusätzliche Tabellen, das will ich nicht. Ich will nur die Daten aus den Tabellen übernehmen.
- Zweitens will ich das Ganze Benutzeroptimiert über einen Button(VB) steuern

Wie kann ich die Daten(Tabellen) einer externen MDB-Datei via VisualBasic-Source (Access) auslesen und
in meinen bestehenden Tabellen einfügen.
SlainteMhath
SlainteMhath 15.12.2006 um 13:58:54 Uhr
Goto Top
Versuch's mal hiermit:

DBName ist der vollständige Pfad zur externen MDB
Den DoCMD.RunSQL befehl musst Du entsprechend anpassen.

dim DBName as string
dim db as database
dim tblRemote as TableDef
dim tblLocal as TableDef

Set DB = DBEngine.OpenDatabase(DBName)
for each tblRemote in DB.TableDefs

Set tblLocal = DB.CreateTableDef(tblRemote.Name & "_remote")  
tblLocal.Connect = ";DATABASE=" & DBName  
tblLocal.SourceTableName = tblRemote.Name
tblLocal.Name = tblRemote.Name & "_remote"  
CodeDB.TableDefs.Append tblRemote.Name & "_remote"  

DOCmd.RunSQL "INSERT INTO " & tblLocal.Name & " ........ FROM " & tblRemote.Name & "_remote"  
CodeDB.TableDefs.Delete tblLocal
next tblRemote

DB.Close

edit:
code ist aus dem Kopf hingeschrieben und deshalb ohne Gewähr. Aber ich denke das Prinzip ist klar face-smile
moeller67
moeller67 15.12.2006 um 15:00:25 Uhr
Goto Top
SlainteMhath
Super, das war das was ich wollte. Vielen, vielen Dank.
moeller67
moeller67 15.12.2006 um 22:56:41 Uhr
Goto Top
Lieber SlainteMhath, nun habe ich mich an der Funktion versucht, aber es klappt nicht. Habe alles Mögliche versucht, kriege immer wieder "Fehler beim Kompilieren, Typen unverträglich". Kannst du mir nochmal helfen?
SlainteMhath
SlainteMhath 27.12.2006 um 10:56:00 Uhr
Goto Top
Ups, stimmt - da ist ein Fehler drin...

die Zeile

CodeDB.TableDefs.Append tblRemote.Name & "_remote"

ersetzen durch

CodeDb.TableDefs.Append tblLocal

dann sollte es funktionieren.