vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Access 97 Datenbanken Tabelleninhalte kopieren 
Autor: Tim.m
Datum: 22.12.04 15:56

Hallo Zusammen,
ich habe ein kleines Problem.
Ich versuche aus einer Datenbank in eine andere Datenbank Tabellen zu kopieren. Es handelt sich hierbei um Access 97 Datenbanken.
Datenbank 1 ist die Quelldatenbank und beinhaltet auch Daten in den Tabellen, die Datenbank 2 liegt in der gleichen Struktur vor, jedoch befinden sich keine Daten in den Tabellen.
Wie in diesem Tipp http://www.vbarchiv.net/archiv/tipp_941.html kann ich leider nicht vorgehen, weil die Tabelle aus der DB1 nicht in die DB2 kopiert werden kann, solange diese noch vorhanden ist. Ich kann aber die Tabelle in der DB2 nicht löschen, weil in dieser Datenbank Queries beinhaltet und sonst die Verknüpfungen der Queries zu dieser Tabelle verloren gehen würden.
Gibt es also eine Möglichkeit eine Tabelle mit Daten in eine andere Datenbank mit der gleichen Tabelle jedoch ohne Daten einzufügen. Es müssen nur alle Daten der Tabelle übergeben werden.
Danke für Eure Hilfe. Frohe Weihnachten!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Access 97 Datenbanken Tabelleninhalte kopieren 
Autor: wincnc
Datum: 22.12.04 16:10

Versuch´s mal so:
Con.Execute "INSERT INTO [C:\Ziel.mdb].ZielTabelle SELECT * FROM QuellTabelle"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Access 97 Datenbanken Tabelleninhalte kopieren 
Autor: Tim.m
Datum: 22.12.04 16:37

Hallo wincnc,

vielen Dank für Deinen Tipp. Leider scheint bei mir irgendetwas nicht zu klappen.
Ich habe die Variable "con" als DAO.Database deklariert. Leider bekomme ich einen Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt) und ich weiß nicht woran es liegt. Ich kann auch den Code hier rein stellen, wenn es nötig ist. Vielen Dank.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Access 97 Datenbanken Tabelleninhalte kopieren 
Autor: wincnc
Datum: 22.12.04 16:47

Falls Du damit nicht zurecht kommst poste mal Deine Code.
' Verweis auf Microsoft ActiveX Data Objects 2.x Library nicht vergessen !!!!
 
Dim Con As ADODB.Connection
Set Con = New ADODB.Connection
Con.CursorLocation = adUseClient
Con.Provider = "Microsoft.Jet.OLEDB.4.0"
Con.Open "C:\Quell.mdb"
Con.Execute "INSERT INTO [C:\Ziel.mdb].ZielTabelle SELECT * FROM QuellTabelle"
Con.Close
Set Con = Nothing
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Mit DAO geht´s so 
Autor: wincnc
Datum: 22.12.04 17:01

Mit DAO:
' Verweis auf Microsoft DAO 3.51 oder DAO 3.6 Object Library nicht vergessen !!!
 
Dim Con As DAO.Database
Set Con = DBEngine.OpenDatabase("C:\Quell.mdb")
Con.Execute "INSERT INTO [C:\Ziel.mdb].ZielTabelle SELECT * FROM QuellTabelle"
Con.Close
Set Con = Nothing
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mit DAO geht´s so 
Autor: Tim.m
Datum: 22.12.04 17:08

Vielen Dank, jetzt hast Du mich erst einmal beschäftigt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mit DAO geht´s so 
Autor: Tim.m
Datum: 22.12.04 17:21

Hallo wincnc,

es funktioniert zumindest die Abfrage aus der Quelldatenbank. Da beide Datenbanken Passwortgeschützt sind, habe ich das Passwort bei der Set Con Anweisung angehangen. Funktioniert, nur bei der INSERT INTO Anweisung bekomme ich das Passwort nicht an die Datenbankabfrage der Zieldatenbank.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mit DAO geht´s so 
Autor: wincnc
Datum: 22.12.04 17:30

Da kann ich Dir nicht mehr weiter helfen. Ich glaube nicht, daß das mit SQL geht.
Da wirst Du beide Datenbanken öffnen - und Datensatz für Datendatz kopieren müssen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Es geht doch !! 
Autor: wincnc
Datum: 22.12.04 17:53

Wenn Du die Ziel MDB auch öffnest, dann geht´s !!
Dim Con As DAO.Database
Dim Con2 As DAO.Database
 
Set Con = DBEngine.OpenDatabase("C:\Quell.mdb", False, False, _
  ";pwd=DeinPassWort")
Set Con2 = DBEngine.OpenDatabase("C:\Ziel.mdb", False, False, _
";pwd=DeinPassWort")
 
Con.Execute "INSERT INTO [C:\Ziel.mdb].ZielTabelle SELECT * FROM QuellTabelle"
 
Con.Close
Con2.Close
Set Con = Nothing
Set Con2 = Nothing
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Es geht doch !! 
Autor: Tim.m
Datum: 23.12.04 09:02

Guten Morgen Wincnc,

vielen Dank für die ganze Hilfe! Es funktioniert wunderbar!
Ich hatte gestern Abend, weil ich nicht mehr Online war, an einer Zwischenlösung gearbeitet, die das Passwort der zweiten Datenbank zuerst entfernt und dann später wieder hinzufügt.

http://www.vbarchiv.net/archiv/tipp_455.html

Aber Deine Idee ist unschlagbar! Dir und Deiner Familie ein frohes Weihnachtsfest und alles Gute fürs neue Jahr 2005.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Hoffe das ist die letzte Frage zu diesem Thema... 
Autor: Tim.m
Datum: 23.12.04 12:18

Hallo wincnc,

ich habe dann doch nochmal eine Frage. Kann ich im folgenden String auch den Pfad der Ziel.mdb als Variable definieren? Hat ja nicht jeder eine Festplatte C:\
App.Path würde ja auch reichen. Vielen Dank.

Con.Execute "INSERT INTO [C:\Ziel.mdb].ZielTabelle SELECT * FROM QuellTabelle"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Hoffe das ist die letzte Frage zu diesem Thema... 
Autor: wincnc
Datum: 23.12.04 12:40

Dim Datei As String
Datei = "[C:\Ziel.mdb]"
Con.Execute "INSERT INTO " & Datei & ".ZielTabelle SELECT * FROM QuellTabelle"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Das war es! 
Autor: Tim.m
Datum: 23.12.04 12:47

Du hast mir die Augen geöffnet!
Herzlichsten Dank!

Grüße Tim
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Hoffe das ist die letzte Frage zu diesem Thema... 
Autor: wincnc
Datum: 23.12.04 12:47

Oder so:
Dim Datei As String
Datei = "C:\Ziel.mdb"
Con.Execute "INSERT INTO [" & Datei & "].ZielTabelle SELECT * FROM QuellTabelle"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel