Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Per SQL eine Tabelle kopieren





Frage

Hallo Weiss einer wie ich eine Tabelle in Access mit hilfe von SQL Befehlen kopieren kann. Beispiel: Access2000 Datenbank 2 Tabellen - Test - Toast Jede Tabelle hat ca. 10 Felder Will jetzt die Tabelle Test kopieren , so das ich 3 Tabellen habe. - Test - Toast - KopievonTest Die neue Tabelle soll auch nur die Struktur von der Original haben, nicht die Daten. Kann mir einer Helfen bitte :)

Antwort 1 von hendrikw

Also unter Sybase (bzw. MS SQL-Sever) würde ich das so machen:
(keine Ahnung, ob das Access auch so kann)

select * into KopieVonTest from Test where 1=2

select into legt die Tabelle an und die seltsam anmutende where-Klausel verhindert das Kopieren der Daten.
mfg
Hendrik

Antwort 2 von dieKerstin

Hallo

wieso per SQL?
geh auf den Reiter Tabellen, da wo deine beiden Tabellen sind. Markiere die Tabelle Test -> rechte Maus -> Kopieren ... dann irgendwo daneben ins Fenster klicken, so dass die Markierung von Test aufgehoben ist -> wieder rechte Maustaste und Einfügen -> Nun sollte nach einem neuen Namen für die Tabelle gefragt werden -> eingeben -> KopievonTest sollte dann dort erscheinen. Um nur die Struktur zu erhalten, öffnest du die gerade kopierte Tabelle und löschst alle Daten darin -> FERTIG !

Antwort 3 von Niccah

da habe ich noch eine weiterführende Frage...

Wie kann ich dann eine Tabelle aus DB1 in DB2 kopieren?!

Danke für die schnelle Antwort im Voraus!


Grüße, Niccah

Antwort 4 von El Bobbele

Hallo Niccah!

Wenn du die Tabelle von der lokalen Datenbank in eine externe Datenbank kopieren willst, dann müsste die DoCmd.CopyObject-Anweisung reichen (siehe Beschreibung in der Access-Hilfe). Ansonsten wird wohl eine benutzerdefinierte Funktion fällig werden.

Gruss
El Bobbele

Antwort 5 von ²thom

Kopieren funktioniert fast wie in Sybase

im Code:
Docmd Runsql "Select * from Tabelle into Kopie_Tabelle"

Von einer DB in eine Andere DB ist etwas schwieriger:

entweder machst Du ein zweites Database-Objekt, das Du über ein Workspace-Objekt definierst, auf das Du mit SQL übergreifend zugreifen kannst:

Dim wsp as Object
Dim DB2 as Object

Set wsp = DBEngine.Workspaces(0)
Set DB2 = wsp.OpenDatabase("pfad-zur_DB2.mdb")


Select * from Tabelle1 into DB2.Tabelle1

oder, wenn die DB2 geöffnet ist:

Ein Makro aufzeichnem, das über Datei-Importieren die Tabelle importiert.


PS: Siehe in der Hilfe von Access97 nach, die ist als einzige brauchbar ;-) . Nur stimmen manchmal die Befehle nicht immer überein. Bei AccessXP/2000 machen die viele "_" in die Befehle.