初始化MS Access查询中的参数

时间:2016-07-13 20:13:00

标签: ms-access

在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的更复杂查询。另一个要求是它必须包含在一个查询对象中。

1 个答案:

答案 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语句结束后找到"字符的原因。"错误信息。