vb6&中的查询字符串语法错误SQL

时间:2012-05-14 20:16:12

标签: sql string vb6

我无法弄清楚这段代码的哪一部分写得不正确。

在我的查询字符串中,我正在尝试收集sFrom和sTo值之间的一系列记录。基本上,我想这样做,以便从我的数据库中收集的所有控制数中,唯一显示的是用户输入的起始范围(sFrom)和结束范围(sTo)。< / p>

sQuery = "SELECT " & sFields & " FROM " & sTable &
         " Where store_id Like 'XXX'" & sFilter &
         " Where control_no > sFrom and < sTo " &
           order by " & sOrderBy

4 个答案:

答案 0 :(得分:2)

此:

" Where control_no > sFrom and < sTo "

应该是这样的:

" Where control_no >= " & sFrom & " and control_no <= " & sTo

(当然假设sFrom和sTo是用来自用户的数字输入填充的字符串变量)

答案 1 :(得分:1)

您不能在&lt;

之前删除control_no
sQuery = "SELECT " & sFields & " FROM " & sTable & " Where store_id Like 'XXX'" & sFilter & " Where control_no > sFrom and control_no < sTo " & order by " & sOrderBy

答案 2 :(得分:1)

  1. Like 'XXX'" & sFilter中,X'和下一个字符串之间没有空格。
  2. 您根本没有续行字符。
  3. 你有两个Where子句。
  4. sFromsTo是文字字符串。您可能打算将它们用作变量。
  5. control_nosTo之间没有比较。
  6. sFilter与周围的SQL之间没有声明。
  7. order by之前没有双引号。
  8. 就像样式选择一样,SQL关键字大小写也不一致。
  9. 现在,把它们放在一起:

    sQuery = "SELECT " & sFields & " FROM " & sTable & _
             " WHERE store_id LIKE 'XXX'" & _
             " AND " & sFilter & _
             " AND control_no > " & sFrom & _
             " AND control_no < " & sTo & _
             " ORDER BY " & sOrderBy 
    

答案 3 :(得分:1)

调试此方法的最佳方法是查看生成的SQL语句是什么,并从那里开始工作。

您目前评估的内容类似于

SELECT field, field2 FROM table Where store_id Like 'XXX'FilterString Where control_no > sFrom and < sTo order by field1
  1. 您不能拥有多个WHERE子句。
  2. 我希望您的sFilter包含是非常错误的,但这取决于确切的值。
  3. sFromsTo作为文字包含在内,未评估(请参阅tcarvin's answer
  4. WHERE子句的每个部分都需要完整和完整。您无法省略要检查的字段(请参阅Darrel's answer