Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Variable in SQL-String

Begonnen von ulli, Juli 31, 2011, 20:53:16

⏪ vorheriges - nächstes ⏩

ulli

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.

DF6GL

#1
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.

ulli

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