【问题标题】:VBA searching by date in access functionVBA在访问功能中按日期搜索
【发布时间】:2015-06-11 06:41:36
【问题描述】:

有人可以帮我写下面的代码吗?我正在尝试向用户提示一个日期,然后在表中按该日期进行搜索。我正在查询的表具有日期时间格式,但我希望能够仅按日期进行搜索。 我能够获取用户输入,但随后出现错误“查询表达式中的语法错误(缺少运算符)。

 Function cmdInputBox_Click()
    Dim DatePick As Date
    DatePick = InputBox("Enter Date:", "Date", Format(Now(), "dd/mm/yy"))

  Dim strSQL As String


    strSQL = " INSERT INTO PalletMoves " _
        & "SELECT [Pick Area].[From Location], [Pick Area].[Game Number], [Pick Area].[Pallet Number], [Pick Area].[Game Name], [Pick Area].[Shipment Number], [Pick Area].[Box Range], [Pick Area].Cases, [Pick Area].Packs, [Pick Area].Tickets, [Pick Area].[Price Point], [Pick Area].[Delivery Date], [Pick Area].Skids, [Pick Area].[Created Date] " _
        & "FROM [Pick Area] " _
        & "WHERE CAST([Created Date] AS Date) dateDate = '" & DatePick & "';"
DoCmd.RunSQL strSQL

End Function

【问题讨论】:

    标签: sql vba syntax-error ms-access-2010


    【解决方案1】:

    where 子句必须如下所示:

    "WHERE [Created Date] = #" & DatePick & "#;"
    

    更多信息:https://support.office.com/en-us/article/Examples-of-using-dates-as-criteria-in-Access-queries-aea83b3b-46eb-43dd-8689-5fc961f21762

    注意:我需要警告你。当用户删除默认字符串并单击Cancel 按钮时,InputBox 函数将返回空字符串!您应该在执行进一步的代码(查询)之前检查它。

    【讨论】:

    • 非常感谢您的回复。我进行了更改,但我仍然需要在搜索时输入准确的日期和时间,例如 2015 年 4 月 4 日下午 5:13:47,否则不会返回任何结果。我怎么写才能让我只需要输入 2015 年 4 月 4 日?谢谢
    • 那么...为什么要将日期转换为其短格式(仅日期)?
    • 对不起,我不确定我是否清楚...我想按短日期搜索,但现在只有按日期和时间搜索才有效.我认为我的转换不起作用。
    • 哦...尝试将其转换为:WHERE CDate(Format([Created date], "MM/dd/yyyy))= #" & DatePick & "#;"
    【解决方案2】:

    您需要将日期值放在# 中,同时将其用作 MS Access 查询中的条件。

    strSQL = " INSERT INTO PalletMoves " _
            & "SELECT [Pick Area].[From Location], [Pick Area].[Game Number], [Pick Area].[Pallet Number], [Pick Area].[Game Name], [Pick Area].[Shipment Number], [Pick Area].[Box Range], [Pick Area].Cases, [Pick Area].Packs, [Pick Area].Tickets, [Pick Area].[Price Point], [Pick Area].[Delivery Date], [Pick Area].Skids, [Pick Area].[Created Date] " _
            & "FROM [Pick Area] " _
            & "WHERE [Created Date] = #" & DatePick & "#;"
    

    在这里阅读更多内容:https://support.office.com/en-us/article/Examples-of-using-dates-as-criteria-in-Access-queries-aea83b3b-46eb-43dd-8689-5fc961f21762

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多