首页 > 解决方案 > 使用带有日期过滤器的 VBA-Excel 从 SQL Server 中提取数据 - 不工作

问题描述

我是 Excel VBA 的新手。我使用 VBA 从 SQL-Server 中提取数据,并且能够使用文本过滤器提取数据,但是当我开始按日期过滤时,它不再起作用了。我认为我的错误是日期的格式。我尝试使用此站点上的所有示例,但我开始感到绝望。如果你们能帮助我解决这个障碍,那就太好了。太感谢了。

这是代码:(请注意,我跳过了连接并关闭代码,只关注有问题的源代码)。

我想在这段代码中实现的是根据大于或等于 2018 年 1 月 1 日的日期条件提取所有记录(在 VBA 环境中使用 SQL 查询)。

        query = "SELECT (Worktype), count(*)" & _
        "FROM dbo.InteractionSummary WHERE [Worktype] IN ('" & MAC & "')" & _
        "GROUP BY [Worktype]"

有了这个查询,我没有问题。它完美地生成了数字。这些代码的作用是计算“Worktype”列中具有“MAC”值的所有记录。

我的问题是当我添加以下日期标准时。

        Dim dTheDate As Date
        dTheDate = #1/1/2018#


        query = "SELECT (Worktype), count(*)" & _
        "FROM dbo.InteractionSummary WHERE [Worktype] IN ('" & IMAC & "')" & _
        "GROUP BY [Worktype] AND [StartDateTimeUTC] > " & dTheDate & " "

StartDateTimeUTC 是 DateTime2 列 (datetime2(3),notnull)。我试图仅基于 dTheDate 进行提取。我尝试了每种格式,但它没有让代码通过。

谢谢,天行者

标签: excelvba

解决方案


推荐阅读