Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: ulli am Juli 31, 2011, 20:53:16

Titel: Variable in SQL-String
Beitrag von: ulli am Juli 31, 2011, 20:53:16
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.
Titel: Re: Variable in SQL-String
Beitrag von: DF6GL am August 01, 2011, 08:27:01
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.
Titel: Re: Variable in SQL-String
Beitrag von: ulli am August 01, 2011, 09:03:36
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
Titel: Re: Variable in SQL-String
Beitrag von: DF6GL am August 01, 2011, 09:54:40
Hallo,

ja, danke für den Hinweis , hab's geändert.  8)