【问题标题】:initialize a parameter in MS Access query在 MS Access 查询中初始化参数
【发布时间】:2016-07-13 20:12:59
【问题描述】:

在 MS Access 2010 中,我尝试在查询中声明和初始化一个变量,然后显示该变量的内容。这样做的原因是在更复杂的查询中使用参数作为过滤器的一部分。请注意,对于这种特殊情况,此任务必须在查询对象中完成,而不是在 VBA 中。这是到目前为止的代码:

参数 @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; 选择@日期;

这会导致错误消息:“在 SQL 语句结束后找到字符。”

如果可以对其进行修改以使其正常工作,则最后一行代码将替换为需要在过滤器中使用 @Date 的更复杂的查询。另一个要求是它必须包含在一个查询对象中。

【问题讨论】:

  • Access 查询不是存储过程,它就像一个视图。您必须将上述语句与其余语句集成到一个 SELECT 语句中。

标签: ms-access


【解决方案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 语句结束后找到的字符”的原因。错误信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多