0

我有点困惑为什么我的 ACCESS SQL 查询会有不同的行为......当我使用 NOW() 参数执行 SELECT 查询时,我得到了正确的结果。但是,如果我使用带有今天日期的 TempVar!Date 它返回 0...查询如下所示:

这个有效:

选择 [账户交易]。, 类别。, IIf([Categories].[Income/Expense]="Expense",-([Account Transactions]![Transaction Amount]),[Account Transactions]![Transaction Amount]) AS [Account Transactions] FROM [Account Transactions] LEFT JOIN Categories ON [Account Transactions].Category = Categories.ID WHERE month([Account Transactions].[Entry Date]) = month(Now());

这个不行:

选择 [账户交易]。, 类别。, IIf([Categories]. [Income/Expense]="Expense",-([Account Transactions]![Transaction Amount]),[Account Transactions]![Transaction Amount]) AS [Account Transactions] FROM [Account Transactions] LEFT JOIN Categories ON [Account Transactions].Category = Categories.ID WHERE month([Account Transactions].[Entry Date]) = month([TempVars]![Date]);

我需要第二个 - 使用我的变量来工作。b您的帮助将不胜感激。我测试了 tempvar 的值,没问题。

4

1 回答 1

0

尝试这个:

SELECT [Account Transactions].*, Categories.*, IIf([Categories].[Income/Expense]="Expense",-([Account Transactions]![Transaction Amount]),[Account Transactions]![Transaction Amount]) AS [Actual Amount]
FROM [Account Transactions]
LEFT JOIN Categories ON [Account Transactions].Category = Categories.ID
WHERE month([Account Transactions].[Entry Date]) = month([TempVars]![Date]);

我删除了一些额外的空格并在需要的地方添加了星号。

您的 TempVars 值仅适用于您当前打开的 MS Access 会话。当你进入?Application.TempVars("Date").Value你的 VBA 窗口时你会得到什么?

于 2013-03-18T15:21:48.947 回答