【问题标题】:Search query failed搜索查询失败
【发布时间】:2014-03-01 10:24:41
【问题描述】:

我目前正在研究 ms access 2010 和 vba 编码。我想在给定的开始日期和结束日期之间进行搜索,但它根本不查询。

我的sql查询就是这样,我已经从日历中获取了开始和结束的值。

"SELECT [fields] WHERE (DateofIssue BETWEEN" & TextBoxStartDate.value & " AND " & TextBoxEndDate.value)

我已经包含了(),因为我还有其他条件要检查,()可以这样使用吗?

我看到有人在#中添加并尝试过但失败了,例如:

"SELECT [fields] WHERE (DateofIssue BETWEEN #" & TextBoxStartDate.value & "# AND #" & TextBoxEndDate.value & "#")

我已经将数据表和表格中的日期格式更改为dd/mm/yyyy。我检查了数据表视图,日期以示例28/05/2013 的形式显示。我尝试通过为上面提到的各个文本框添加 msgbox 来进行一些调试。他们显示 28/5/2013 而不是 28/05/2013。这个月少了一个0,是这个原因吗?

任何建议可能是什么问题,我该如何解决?任何帮助将不胜感激,在此先感谢您。

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    是的,你需要#符号..所以试试这个

    "SELECT [fields] WHERE (DateofIssue >= #" & format(TextBoxStartDate.value,"MM/dd/yyyy") & "# AND DateofIssue <= #" & format(TextBoxEndDate.value, "MM/dd/yyyy") & "#")
    

    【讨论】:

    • 谢谢大家的帮助,不胜感激!
    • @user2423986:这是否解决了您的问题? ..如果是,最好你投票这个作为答案..
    【解决方案2】:

    您确实需要在日期周围加上 # 符号。

    您的表格如何显示日期并不重要。都是一样的存储方式。

    前导零无关紧要。

    我对 Access 的理解是,查询需要美国格式的日期。尝试使用 mm/dd/yyyy 或 ISO 标准 yyyy-mm-dd

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多