2017-02-25 3 views
1

Scheint ein kleines Problem mit einer SQL-Aktualisierungsabfrage. Aber ich kann diesen Punkt nicht verstehen. Nicht sehr vertraut mit SQL.MS Access sql - Aktualisieren der Abfragesyntax

Basierend auf einer Auswahl werden ausgewählte Zeilen aus einer Tabelle (7DARphase) kopiert und in eine andere Tabelle (7tblDAR) eingefügt. Und die Project ID (Spalte PRJID) für alle eingefügten Zeilen sollte mit einem festen Wert (PID) aus dem Formular aktualisiert werden. Problem ist: Ich bin mit dem Syntaxproblem in dem Teil konfrontiert, in dem der feste Wert in die Spalte PRJID der hinzugefügten Zeilen eingefügt werden muss.

-Code ist:

Set dbs = CurrentDb 

PID = Me.PRJID.Value 

sqlstr = "INSERT INTO 7tblDAR (Phase, Deliverable, Link_PIM_temp, Link_PIM_WB, Description, Accept_criteria, Deliv_type, TollgateID, Workstream, Accountable, ClientRACI) SELECT [7DARphases].Phase, [7DARphases].Deliverable, [7DARphases].Link_PIM_temp, [7DARphases].Link_PIM_WB, [7DARphases].Description, [7DARphases].Accept_criteria, [7DARphases].Deliv_type, [7DARphases].TollgateID, [7DARphases].Workstream, [7DARphases].Accountable, [7DARphases].ClientRACI FROM 7DARphases WHERE ((([7DARphases].SolType) Like '*2PP*')) ORDER BY [7DARphases].Phase, [7DARphases].Deliverable;" 

sqlUpdt = "update 7tblDAR set PRJID = '" & Me.PRJID.Value & "' from 7tblDAR where tblDAR.PRJID = """"" 


dbs.Execute sqlstr, dbFailOnError 

dbs.Execute sqlUpdt, dbFailOnError 

Die 'sqlstr' funktioniert gut und fügt Zeilen. Aber ‚sqlUpdt‘ gibt Fehler:
„Laufzeitfehler 3075: Syntaxfehler (fehlender Operator) in Abfrageausdruck ...“

Können Sie mir bitte mit diesem helfen.

Plus, wenn möglich, können Sie vorschlagen, diese Aktion in einer Abfrage selbst durchzuführen.

Antwort

0

Warum nicht den Wert eingeben, wenn Sie die Werte einfügen?

sqlstr = "INSERT INTO 7tblDAR (Phase, Deliverable, Link_PIM_temp, Link_PIM_WB, Description, Accept_criteria, Deliv_type, TollgateID, Workstream, Accountable, ClientRACI, PRJID) 
    SELECT . . ., 
      '" & Me.PRJID.Value & "' 
    WHERE [7DARphases].SolType Like '*2PP*') 
    ORDER BY [7DARphases].Phase, [7DARphases].Deliverable;" 

Dies erspart die Mühe, es später zu aktualisieren.

+0

Perfecttt Lösung Gordon ... Vielen vielen Dank für diese Lösung –