Access Tabelle kopieren / importieren
Hallo,
ich möchte in meine Access-Datenbank aus einer anderen DB eine Tabelle kopieren. Das Problem dabei ist, dass die andere DB verschlüsselt ist und ich immer das Passwort eingeben muss - das möchte ich vermeiden.
Meine nicht funktionierende Lösung:
DoCmd.TransferDatabase _
acImport, "Microsoft Access", "C:\AndereDB.accdb", acTable, "Tabelle1", "Tabelle2", False
Gruß
Antwort schreiben
Antwort 1 von Marie vom 17.10.2020, 02:25 Options
Ein Passwort ist halt dazu da, dass nicht jeder gerade ohne das Passwort an die Daten kommt, also kommste logischerweise mit dem einfachen Importbefehl auch nicht an die Daten.
Was ist daran jetzt unverständlich, das müsste Dir doch klar sein??
Geh halt mit dem Passwort, wenn Du befugt bist, in die andere Datenbank rein und exportier von dort die Tabelle.
Und wenn Du nicht befugt bist, dann frag jetzt am besten hier nicht mehr weiter :-(
Gruß Marie
Antwort 2 von OmaDuck vom 17.10.2020, 07:36 Options
Hallo,
mal davon ausgegangen, dass Du username und Passwort hast, sollte es mit
UID="der Datenbank-Anmeldename"
PWD="das dazugehörige Passwort"
funktionieren
Gruß
OmaDuck
Antwort 3 von stirlitz vom 17.10.2020, 10:33 Options
Hallo Zusammen,
vielleicht habe ich mich nicht klar genug ausgedrückt.
Versuch2:
Ich habe eine Datenbank erstellt und diese auf Front- und Backend aufgeteilt. Dann habe ich die BE verschlüsselt (d.h. das Passwort kenne ich) und mit FE neu verknüpft. So, jetzt möchte ich eine Tabelle aus der BE-Datei in Frontend kopieren (nicht verknüpfen). Das heißt, die Frontend muss jetzt eine Verknüpfung und eine Kopie der Tabelle enthalten.
Mit dem o.g. Beispiel funktioniert das auch, nur die lästige Passworteingabe muss weg. Wo muss ich das Passwort im VBA-Code einbauen?
Gruß stirlitz
Antwort 4 von OmaDuck vom 17.10.2020, 11:07 Options
Hallo,
das meinte ich. du kannst das passwort im Befehl fest "verdrahten", wenn Deine Sicherheitsleute das erlauben.
DoCmd.TransferDatabase _
acImport, "Microsoft Access", "C:\AndereDB.accdb", acTable, "Tabelle1", "Tabelle2", uid="benutzer", pwd="passwort", False
Gruß
Antwort 5 von stirlitz vom 17.10.2020, 14:20 Options
Hallo OmaDuck,
irgendwie funktioniert Deine Lösung bei mir nicht. Hast Du sie getestet? Vielleicht liegt es an der Schreibweise? Auf jeden Fall habe ich es erst mal so gelöst:
Dim DBS As Database
Dim WSS As Workspace
Set WSS = DBEngine.Workspaces(0)
Set DBS = WSS.OpenDatabase("C:\AndereDB.accdb", False, False, ";pwd=test")
DoCmd.TransferDatabase _
acImport, "Microsoft Access", DBS.Name, acTable, "Tabelle1", "Tabelle2", False, True
DBS.Close
Set DBS = Nothing
Dein Beispiel ist kürzer und es wäre schöner, wenn es bei mir funktionieren würde.
Gruß stirlitz
Antwort 6 von OmaDuck vom 20.10.2020, 08:38 Options
Hallo,
ausprobiert habe ich es nicht, aber ich hatte vor Urzeiten eine Anwendung bei das m.E. so funktioniert hat.
Deine Lösung ist doch auch nicht so viel länger und funktioniert . Ich würde das jetzt so hinnehmen.
Gruß
Liane