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) |