访问VBA无法在日期范围

时间:2016-06-22 09:33:14

标签: sql vba access

背景

我的表单上有多个按钮。每个按钮用于创建一个html报告,以便可以轻松地将数据通过电子邮件发送给其他人。我已经设法让2个按钮工作正常,大约90%的方式来获得其他2个工作,因为他们使用相同的代码,只是将不同的变量传递给子。

问题

其中一个按钮是从"问题"中选择所有记录。表格" CheckDate"字段位于表单上选择的2个日期之间。这是我摔倒的地方,似乎根本无法获得任何搜索结果。我已经尝试使用纯文本作为搜索字符串,以便我知道该语句是正确的,但这也不起作用。

数据

表=问题

字段(类型):

  • ID(自动编号)
  • NameID(Number)
  • CheckDate(日期/时间)
  • 问题(编号)
  • LogScreen(是/否)
  • ActionPlan(是/否)
  • 所有者(是/否)
  • DueDate(是/否)
  • LatestStatus(是/否)
  • KE(是/否)
  • 状态(是/否)
  • 链接(是/否)
  • RootCause(是/否)
  • 监控(是/否)

代码

以下是我的代码的相关部分(我还没有把它全部放进去,因为有很多不相关的部分):

strSQL = "SELECT * FROM Questions WHERE CheckDate BETWEEN #" & strFrom & "# AND #" & strTo & "#"
Set rstQuestions = dbsQualityCheck.OpenRecordset(strSQL, dbOpenDynaset)

If Not (rstQuestions.EOF And rstQuestions.BOF) Then
    rstQuestions.MoveFirst
    Do Until rstQuestions.EOF = True
        REST OF CODE
    Loop
Else
    MsgBox "There are no checks against this Analyst"
End If 

问题

这里的问题是我总是最终得到消息框,建议不要对分析师进行检查。我只能假设数据不正确或者检查的一侧日期格式不正确,但我无法看到故障所在。

我还尝试了以下作为strSQL字符串:

strSQL = "SELECT * FROM Questions WHERE CheckDate BETWEEN #29/11/2015# AND #01/12/2015#"

1 个答案:

答案 0 :(得分:1)

尝试将您的条件格式化为

SELECT * FROM Questions WHERE 
 CheckDate BETWEEN #" 
& format(strFrom,"yyyy/mm/dd") & 
"# AND #"
 & format(strTo,"yyyy/mm/dd") & "#"