2016-04-07 78 views
-1

我正在試圖做一個動態的SQL語句,其中命令將在j的值的某個區域添加字段「繪製」。這是因爲有幾個實例出現在「修訂」表中的「Rev」字段。我在查詢設計中創建了這個語句,但只是更新表中的特定字段,而不依賴於我的計數器j。我得到'JOIN表達不支持'。任何人都可以幫我解決這個問題嗎?INNER JOIN VBA訪問

Select Case selection(n) 
Case "A" 
    j = 1 
Case "B" 
    j = 2 
Case "0" 
    j = 3 
Case "1" 
    j = 4 
Case "2" 
    j = 5 
End Select 

With rs 
    While Not .EOF 
      DoCmd.RunSQL "SELECT Area.Drawn " & _ 
           "FROM (Revision INNER JOIN RevDesc ON Revision.Rev" & j & " = RevDesc.Rev) " & _ 
           "INNER JOIN Area ON Revision.LineNumber = ArealineNmuber ;" 
.MoveNext 
wend 
end with 
+0

'ArealineNmuber'? – David

+0

@David,我解決了這個問題,Area是一個表格,lineNumber是一個字段。所以我添加了「。」它們之間。但是,現在我得到'一個RunSQL操作需要一個由SQL語句組成的參數' –

+0

將錯誤消息輸入到Google中始終是一個很好的開始的地方:http://stackoverflow.com/a/27425050/328193 – David

回答

0

也許你正在尋找方法類似OpenRecordset ...
截枝記錄使用結果域生成簡單Update你可以通過RunSQL方法運行。

編輯:
例如更新:

UPDATE [Revision] 
SET [Drawn] = (SELECT [Drawn] FROM [Area] WHERE [Area].[LineNumber] = [Revision].[LineNumber]) 
WHERE Exists(SELECT 1 FROM [RevDesc] 
    WHERE [RevDesc].[Rev] = [Revision].[Rev]);