[英]Query string syntax error in vb6 & SQL
我不知道這段代碼的哪一部分寫得不正確。
在我的查詢字符串中,我試圖在sFrom和sTo的值之間收集一系列記錄。 基本上,我想這樣做,以便使我從數據庫中收集到的所有控制編號中,唯一顯示的內容是用戶為起始范圍(sFrom)和結束范圍(sTo)輸入的任何內容。
sQuery = "SELECT " & sFields & " FROM " & sTable &
" Where store_id Like 'XXX'" & sFilter &
" Where control_no > sFrom and < sTo " &
order by " & sOrderBy
這個:
" Where control_no > sFrom and < sTo "
應該可能是這樣的:
" Where control_no >= " & sFrom & " and control_no <= " & sTo
(當然,假設sFrom和sTo是用用戶輸入的數字填充的字符串變量)
您不能在<
sQuery = "SELECT " & sFields & " FROM " & sTable & " Where store_id Like 'XXX'" & sFilter & " Where control_no > sFrom and control_no < sTo " & order by " & sOrderBy
Like 'XXX'" & sFilter
, X
'和下一個字符串之間沒有空格。 sFrom
和sTo
是文字字符串。 您可能打算將它們用作變量。 control_no
和sTo
之間進行比較。 sFilter
和周圍的SQL之間沒有語句。 order by
之前,您沒有雙引號。 現在,將它們放在一起:
sQuery = "SELECT " & sFields & " FROM " & sTable & _
" WHERE store_id LIKE 'XXX'" & _
" AND " & sFilter & _
" AND control_no > " & sFrom & _
" AND control_no < " & sTo & _
" ORDER BY " & sOrderBy
調試此錯誤的最佳方法是查看生成的SQL語句,然后從那里開始工作。
您目前的評價為
SELECT field, field2 FROM table Where store_id Like 'XXX'FilterString Where control_no > sFrom and < sTo order by field1
sFilter
包含非常錯誤,但這取決於確切的值。 sFrom
和sTo
作為文字包括在內,未評估(請參閱tcarvin的答案 ) WHERE
子句的每個部分都必須完整。 您不能忽略該字段進行檢查(請參閱Darrel的答案 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.