2017-02-25 103 views
1

似乎是sql更新查詢的一個小問題。但我無法解決這個問題。不太熟悉sql。MS Access sql - 更新查詢語法

基於選擇,將表中選定的行(7DARphases)複製並插入到另一個表(7tblDAR)中。並且所有插入行的項目ID(PRJID列)應使用從窗體中獲取的固定值(PID)更新。 問題是:我需要在添加行的PRJID列中插入固定值的部分中遇到語法問題。

代碼是:

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 

的 'sqlstr' 工作正常,並插入行。 但「sqlUpdt」給出錯誤:
「運行時錯誤3075:語法錯誤(缺少操作員)在查詢表達式......」

能否請你幫我出這一點。

另外,如果可能的話,您是否可以建議在一個查詢本身中執行此操作。

回答

0

爲什麼不在插入值時插入值?

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;" 

這節省了稍後更新它的麻煩。

+0

Perfecttt解決方案Gordon ...許多非常感謝這個解決方案 –