2010-10-25 61 views
2

我一直在得到錯誤「附近關鍵字不正確的語法」,其中「。」。請幫我調試我的sql查詢!

DoCmd.RunSQL "insert into userPreferences (userId, GroupId, preferenceId, properties, isDefault)" & _ 
     "select " + Me.UserId + ", " + Me.GroupId + ", preferenceid, properties, 1 from preferences " & _ 
     " where preferenceId not in " & _ 
     "(select preferenceId from userPreferences where GroupId = " + Me.GroupId + _ 
     " and userId = " + Me.UserId + _ 
     ") and preferenceid not in " & _ 
     "(select preferenceid from GroupPreferences " & _ 
     "where cabGroupId = " + Me.GroupId + " and override = 0)" 
+2

我不清楚爲什麼你使用+連接運算符而不是& - +傳播空值並執行算術運算,如果雙方都可以對數值有價值的東西進行強制操作,並且只應在明確要傳播時使用空值。 – 2010-10-25 17:57:46

+0

原來是這個問題 - 我本來應該用&代替+。如果您輸入這個答案,我會將其標記爲已接受的答案。 – dmr 2010-10-25 18:13:50

回答

3

指定的查詢字符串:

Dim myQuery as String 
Set myQuery = "insert ..." 
DoCmd.RunSql myQuery 

放在最後一行斷點,複製/粘貼到查詢的MS Access查詢視圖。嘗試運行它,MS Access會告訴你到底發生了什麼問題。

+0

使用你的答案。我把字符串放入一個變量中,然後插入一個斷點,以便我可以在直接窗口中看到整個字符串。事實證明,我正在使用+而不是&,這時變量爲空,所以字符串被截斷。 – dmr 2010-10-25 17:27:08

+0

@dmr:哈,一讀時錯過了。儘管調試方法在大多數情況下都有幫助,但Access查看視圖是學習SQL的好地方 – Andomar 2010-10-25 17:29:36