Datediff 不适用于 VBA 查询以在 Excel 中访问

Datediff not working on VBA query to access in Excel

我正在尝试在 excel 中对 vba 进行此基本选择查询:

1
"SELECT * FROM Tabela1 WHERE DateDiff('yyyy', [Vencimento]," & filter &") = 0"

所以我想获取"Vencimento"上的年份与所需年份匹配的所有结果。但是当 "filter = 2016" 和 "Vencimento = 01/11/2016" 时,这个 Datediff 返回 -111(或类似的东西)。

[Vencimento] 是访问表上的一列,过滤器位于 excel 的单元格中。我猜 excel 没有使用 [Vencimento] 作为日期,即使我在访问此列中配置为日期,我不知道如何做到这一点。


以下内容应该在 T-SQL 和 MS Access 中工作:

1
SELECT * FROM Tabela1 WHERE YEAR( [Vencimento] ) = 2016

因此,如果您希望从名为 filter 的单元格中保存的值构建它,那么:

1
SQL$ ="SELECT * FROM Tabela1 WHERE YEAR( [Vencimento] ) =" & range("filter").value

但是,如果您的过滤器单元格包含日期,但被格式化为仅显示年份,那么您需要从中提取年份值,如下所示:

1
SQL$ ="SELECT * FROM Tabela1 WHERE YEAR( [Vencimento] ) =" & Year(range("filter").value)