Hallo,
ich möchte eine Anfügeanfrage per VBA ausführen lassen, die Daten in eine andere Datenbank schreibt. Da ich aber damit rechnen muss, dass die Zieldatenbank nicht immer am selben Ort ist, möchte ich die Pfadangabe durch eine Variable ersetzen; der Pfad inkl. Dateiname wird per Dlookup aus einer Tabelle ausgelesen und einer Stringvariablen zugewiesen. Wie muss ich nun an dieser Stelle den SQL-String zusammensetzen, damit es klappt?
Dim strsql As String
Dim ZielDB As String
ZielDB = DLookup("ZentralDB", "Standardwerte")
strsql = "INSERT INTO Kontakte ( ID, Nachname, Vorname, ...) IN 'C:\Users\PC\Documents\...\ZentralBE.mdb' " & _
"SELECT Kontakte.ID, Kontakte.Nachname, Kontakte.Vorname, ... " & _
"FROM Kontakte WHERE (((Kontakte.arch)=-1));"
CurrentDb.Execute strsql
Die Variable "ZielDB" an die Stelle der konkreten Pfadangabe zu setzen funktioniert weder ohne noch mit einschließenden Anführungszeichen oder Hochkommata. Es erscheint die Fehlermeldung "Syntaxfehler in der INSERT-TO-Anweisung.
Hallo,
so sollte das schon gehen:
strsql = "INSERT INTO Kontakte ( ID, Nachname, Vorname, ...) IN """ & ZielDB & """ " & _
vorausgesetzt, dass mit
ZielDB = nz( DLookup("ZentralDB", "Standardwerte",?????) , "C:\Users\PC\Documents\...\ZentralBE.mdb" )
auch der richtige PfadDateiname ausgelesen wird.
Danke für die Lösung, Franz; mit den vielen "" hat es tatsächlich funktioniert; ich mußte sogar noch eins mehr hinten dran hängen :-)
LG, Ulli
Hallo,
ja, danke für den Hinweis , hab's geändert. 8)