2017-07-19 40 views
-3

我知道這有幾個問題,但我已經查看了幾行幾小時的這段代碼,但無法找出問題所在。它一直說這行代碼有語法錯誤,我看不到它。任何幫助,將不勝感激。謝謝。更新語句中的VBA語法錯誤

db.Execute "UPDATE Questions SET Date = #4/26/2014#,TwoChapt=False " & _ 
      " WHERE Book = '" & rs!Book & "' AND Chapter = '" & _ 
       rs!Chapter & "' AND QuestionType = 1 " 
+2

我不是專家(遠離它!!),但不是'Date'是一個保留字,因此需要編碼爲'[Date]'來表示它是一個字段名稱? – YowE3K

回答

1

考慮parameterized queries與querydefs,避免在您的字符串插值值:

SQL(保存爲一個存儲訪問查詢對象)

PARAMETERS BookParam Text(255), ChapterParam Text(255); 
UPDATE Questions 
SET [Date] = #4/26/2014#, TwoChapt = False 
WHERE Book = [BookParam] AND Chapter = [ChapterParam] AND QuestionType = 1; 

VBA(地方在記錄集循環內,除了DimSet ... = Nothing

... 
Dim qdef As Querydef 
Set qdef = Currentdb.Querydefs("MyStoredQuery") 

Do While ... 
    ' BIND PARAMS 
    qdef!BookParam = rs!Book 
    qdef!ChapterParam = rs!Chapter 

    ' EXECUTE ACTION 
    qdef.Execute, dbFailOnError 
Loop 

Set qdef = Nothing