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
(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 !
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
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
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.
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.
Ich möchte kostenlos eine Frage an die Mitglieder stellen:
Ähnliche Themen:
- Tabelleninhalte einer excel-Tabelle kopieren und in eine neue Tabelle einfügen
- Kann ich bei SQL am Encde einer Spalte die Werte der Spalte summieren lassen?
- sring mit backslash in sql speichern --> backslash fehlt
- Tabelle kopieren (Tabelleninhalt)
- Tabelle ohne ausgeblendeten Text kopieren in andere Tabelle

