【问题标题】:Access VBA SQL query searching between dates访问日期之间的 VBA SQL 查询搜索
【发布时间】:2021-12-12 16:49:14
【问题描述】:

我有一些 VBA 代码,它从文本框中的两个日期选择器值中获取日期和日期字段。

但是,在两个日期之间进行搜索时,我会收到“输入参数值”提示,要求输入。

Dim SQLAllReject As String

Dim strDateFrom As String
Dim strDateTo As String

strDateFrom = Format(txtDate.Value, "mm/dd/yyyy")
strDateTo = Format(txtDateTo.Value, "mm/dd/yyyy")

直接在查询设计向导中运行时,在日期之间进行搜索可以正常工作:

WHERE (((XXXXXXXXXXXXXXXXXXXX.Date) Between #10/1/2021# And #10/27/2021#))

这里有什么问题?如何强制 Access/VBA 采用我指定的日期并在它们之间搜索而不显示“输入参数值”提示?

当我调试查询并逐步执行时,它给出的日期与在查询设计视图中运行它的日期完全相同。

仅供参考,如果我使用一个日期和 LIKE 运算符,这可以正常工作。

SQLAllReject = "SELECT dbo_vw_busobj_file_rejections_load_access_temp5_copy.HashKey AS [ID], dbo_vw_busobj_file_rejections_load_access_temp5_copy.Reject_Date AS [Date], " & _
    "FROM dbo_vw_busobj_file_rejections_load_access_temp5_copy " & _
    "WHERE (((dbo_busobj_file_rejections_load_access_temp5_copy.Reject_Date) Between #" & strDateFrom & "# And #" & strDateTo & "#)) " & _
    "ORDER BY dbo_vw_busobj_file_rejections_load_access_temp5_copy.Reject_Date DESC;"

【问题讨论】:

  • 您将变量声明为字符串类型。您需要将字符串转换为日期类型。
  • 你的 sql 字符串是什么样子的 - 你使用 strDateFrom 的那个?
  • SQLAllReject = “SELECT dbo_vw_busobj_file_rejections_load_access_temp5_copy.HashKey AS [ID],dbo_vw_busobj_file_rejections_load_access_temp5_copy.Reject_Date AS [日期],” &_ “FROM dbo_vw_busobj_file_rejections_load_access_temp5_copy” &_ “WHERE(((dbo_busobj_file_rejections_load_access_temp5_copy.Reject_Date)#之间” & strDateFrom & "# And #" & strDateTo & "#)) " & _ "ORDER BY dbo_vw_busobj_file_rejections_load_access_temp5_copy.Reject_Date DESC;"
  • 如果您使用 Debug.Print strDateFrom 和 Debug.Print strDateTo,您的输出是预期的并且格式正确吗?
  • 为了便于阅读:你知道你可以为你的表使用一个 alias,比如:SELECT t.x FROM table_with_very_long_name t WHERE ...

标签: sql vba


【解决方案1】:

好的,我以某种方式修复了它...查询字符串试图从视图而不是表中进行选择,并且由于某些奇怪的原因它导致了参数提示。

我已将 dbo_vw_busobj_file_rejections_load_access_temp5_copy 更改为 dbo_busobj_file_rejections_load_access_temp5_copy 表,并在从文本框中选择日期时进行了一些字符串到日期的转换后设法让它工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多