在MS Access 2010中,我尝试在查询中声明并初始化变量,然后显示该变量的内容。这样做的原因是在更复杂的查询中使用参数作为过滤器的一部分。请注意,对于此特定情况,此任务必须在查询对象中完成,而不是在VBA中完成。这是迄今为止的代码:
PARAMETERS @Date DATE; SELECT TOP 1 FORMAT(LastUpdated, "yyyy-mm-dd") AS @Date FROM Table1 GROUP BY FORMAT(LastUpdated, "yyyy-mm-dd") ORDER BY FORMAT(LastUpdated, "yyyy-mm-dd") DESC; SELECT @Date;
这会导致错误消息:"在SQL语句结束后找到的字符。"
如果可以将其修改为有效,则最后一行代码将替换为需要在过滤器中使用@Date的更复杂查询。另一个要求是它必须包含在一个查询对象中。
答案 0 :(得分:1)
在Access中,您不需要使用@
前缀参数。参数被推断为任何无法解析的列。因此,如果您的表格没有date
列,则使用date
就足以宣布""一个参数。但是,p_date
之类的内容可能会将其与数据类型DATETIME
/ DATE
我不知道你对此有何期待
FORMAT(LastUpdated, "yyyy-mm-dd") AS @Date
似乎是尝试将FORMAT(LastUpdated, "yyyy-mm-dd")
的别名指定为@Date
的参数值?
Access查询无法返回多个结果集,因此SELECT @Date;
最终导致在SQL语句结束后找到"字符的原因。"错误信息。