如何在Access sql中搜索变量日期

时间:2013-03-18 14:05:36

标签: sql

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

这个有效:

  

选择[帐户交易]。,类别。,   IIF([类别] [收入/支出] = “费用”, - ([帐户   交易]![交易金额]),[账户   交易]![交易金额])AS [实际金额] FROM [账户   交易] LEFT JOIN类别ON [账户交易] .Category   = Categories.ID WHERE月([账户交易]。[输入日期])=月(现在());

这个不起作用:

  

选择[帐户交易]。,类别。,IIf([类别]。   [收入/支出] =“费用”, - ([账户交易]![交易   金额]),[账户交易]![交易金额])AS [实际   金额] FROM [账户交易] LEFT JOIN类别ON [账户   交易] .Category = Categories.ID WHERE月([账户   交易]。[输入日期])=月([TempVars]![日期]);

我需要第二个 - 用我的变量来工作。你的帮助将不胜感激。我测试了tempvar值,没关系。

1 个答案:

答案 0 :(得分: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会话。当您在VBA窗口中输入?Application.TempVars("Date").Value时,您会得到什么?