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-Key: 46814

Url: https://administrator.de/contentid/46814

Printed on: April 24, 2024 at 04:04 o'clock

Mitglied: 27234
27234 Dec 15, 2006 at 09:38:25 (UTC)
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
Member: moeller67
moeller67 Dec 15, 2006 at 12:25:50 (UTC)
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.
Member: SlainteMhath
SlainteMhath Dec 15, 2006 at 12:58:54 (UTC)
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
Member: moeller67
moeller67 Dec 15, 2006 at 14:00:25 (UTC)
Goto Top
SlainteMhath
Super, das war das was ich wollte. Vielen, vielen Dank.
Member: moeller67
moeller67 Dec 15, 2006 at 21:56:41 (UTC)
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?
Member: SlainteMhath
SlainteMhath Dec 27, 2006 at 09:56:00 (UTC)
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.