代碼
strSQL = "SELECT tblHS_area_fields.hsaf_id " _
& "FROM tblHS_area_fields " _
& "WHERE (((tblHS_area_fields.hs_area_id)=" & hs_area_id & ") AND ((tblHS_area_fields.hsf_id)=13))"
Set rs = db.OpenRecordset(strSQL)
錯誤
嘗試從表單運行時的錯誤是:
Extra ) in query expression '(((tblHS_area_fields.hs_area_id)=" &
> hs_area_id & ") AND ((tblHS_area_fields.hsf_id)=13))'
從即時視窗獲取錯誤:
Compile error: expected: line number or label or statement or end of statement
所有欄位都是數字。
VBA代碼和SQL陳述句有什么問題?
uj5u.com熱心網友回復:
只需洗掉 sql 中的所有括號:
strSQL = "SELECT tblHS_area_fields.hsaf_id " & _
"FROM tblHS_area_fields " & _
"WHERE tblHS_area_fields.hs_area_id = " & hs_area_id & " AND tblHS_area_fields.hsf_id = 13 "
在這種情況下,您不需要括號。
uj5u.com熱心網友回復:
不是答案,但評論太長了:
下次,添加一個Debug.Print strSql,然后在 SQL 視圖中創建一個查詢,從除錯視窗 (ctrl G) 復制您的 SQL 陳述句并將您的陳述句粘貼到那里。
或者只是將其粘貼到 Visual Studio 中...
然后您應該可以快速看到問題
uj5u.com熱心網友回復:
考慮在執行之前除錯列印并記錄您的 SQL Debug.print(strSQL):.
左括號必須匹配右括號
一些細分有助于識別和匹配,正確的是:
strSQL = "SELECT hsaf_id" _
& " FROM tblHS_area_fields" _
& " WHERE (" _
& "( hs_area_id =" & hs_area_id & ")" _
& " AND ( hsf_id = 13 )" _
& ")"
對于 SQL 模板,您還可以使用字串替換函式或帶有自定義函式的字串模板。請參閱VBA 字串插值語法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497024.html
