0

我不知道这段代码的哪一部分写错了。

在我的查询字符串中,我试图收集 sFrom 和 sTo 值之间的一系列记录。基本上,我想做到这一点,以便在我从数据库中收集的所有控制数字中,唯一显示的将是用户输入的起始范围 (sFrom) 和结束范围 (sTo) 的任何内容。

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

4 回答 4

2

这:

" Where control_no > sFrom and < sTo "

应该是这样的:

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

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

于 2012-05-14T20:51:24.463 回答
1

您不能在 < 之前删除 control_no

sQuery = "SELECT " & sFields & " FROM " & sTable & " Where store_id Like 'XXX'" & sFilter & " Where control_no > sFrom and control_no < sTo " & order by " & sOrderBy
于 2012-05-14T20:19:37.227 回答
1
  1. 在' 和下一个字符串Like 'XXX'" & sFilter之间没有空格。X
  2. 您根本没有行继续字符。
  3. 您有两个 Where 子句。
  4. sFrom并且sTo是文字字符串。您可能打算将它们用作变量。
  5. control_no和之间没有可比性sTo
  6. sFilter你和周围的 SQL之间没有任何语句。
  7. 您之前没有双引号order by
  8. 就像样式选择一样,您的 SQL 关键字大小写不一致。

现在,把它们放在一起:

sQuery = "SELECT " & sFields & " FROM " & sTable & _
         " WHERE store_id LIKE 'XXX'" & _
         " AND " & sFilter & _
         " AND control_no > " & sFrom & _
         " AND control_no < " & sTo & _
         " ORDER BY " & sOrderBy 
于 2012-05-15T08:50:59.790 回答
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 的回答
  4. 条款的每个部分都WHERE需要完整和完整。您不能省略要检查的字段(请参阅Darrel 的回答
于 2012-05-15T08:51:43.407 回答