rs.Open "select * from YJCS where XLEFT<"&X, And XRIGHT>"&X,and YLEFT<"&Y, And YRIGHT>"&Y ", cnn, adOpenKeyset, adLockOptimistic
錯誤提示「缺少表達式」,原因是字符串拼接語法錯誤:雙引號未正確閉合,且 And 關鍵字被誤拆分為字符串片段。
"select * from YJCS where XLEFT< " & X & " And XRIGHT>" & X & " And YLEFT<" & Y & " And YRIGHT>" & Y
要點:
& 拼接。<、>)需在字符串內,變量在外。And 關鍵字前後留空格,確保 SQL 語法正確。實際項目中強烈建議使用參數化查詢(Command.Parameters),防止 SQL 注入並避免拼接錯誤:
cmd.CommandText = "SELECT * FROM YJCS WHERE XLEFT < ? AND XRIGHT > ? AND YLEFT < ? AND YRIGHT > ?"
cmd.Parameters.Append cmd.CreateParameter("p1", adInteger, adParamInput, , X)
' ... 依次添加其餘參數
rs.Open cmd