连接列 Access 上的参数

parameters on concatenated column Access

我是 Access 的新手,但我以前使用过 SQL。

我想使用参数按日期过滤查询。不幸的是,没有确切的日期,但我们必须使用文本列 "year" 和 "week"。我连接这些列,以便字典顺序等于日期顺序。 select 语句运行良好。特别是我会在 DISPO 列中获得预期的条目 但是,当我添加参数行并执行查询时,系统不仅会询问 BeginDate 和 EndDate 的值,还会询问 DateColumn 的值。最后,"where" 语句将无法按预期工作:它将使用为 DISPO 输入的条目,而不是 select 语句收到的条目。

PARAMETERS BeginDate Text ( 255 ), EndDate Text ( 255 );
SELECT 
    MyDB.art_nr AS ArtNo,
    MyDB.dispo_jahr AS Year, 
    MyDB.dispo_kw AS Week, 
    (MyDB.dispo_jahr & "-" & MyDB.dispo_kw) AS DateColumn
FROM 
    MyDB
WHERE 
    (   DateColumn Between [BeginDate] And [EndDate]
    )
ORDER BY MyDate

你能帮忙解决我的参数问题吗?

您好, 彼得

免责声明:我减少了对这个论坛的查询。实际查询是多个数据库的内部连接。

没有参数行的示例输出:

Line1: ArtNo Year Week DateColumn 
Line2: 1 2016 33 2016-33 
Line3 2 2016 34 2016-34 
and so on. 

我想在 2016-33 上进行过滤,而不是在“年”和“周”列上应用两个过滤器。后者更复杂,特别是如果你想要一个包含 2016-33 到 2017-15 数据的图表。

我发现了一个问题:我的 where-clause 似乎不接受 ALIAS:

WHERE DateColumn Between [BeginDate] And [EndDate]

会失败,而:

WHERE MyDB.dispo_jahr & "-" & MyDB.dispo_kw Between [BeginDate] And [EndDate]

会好的。所以我原来的问题减少到:这种行为对于 Access 来说是正常的还是我可以改进我的查询以启用 ALIAS-usage 选项。 (我的意思是如果不是为了简化查询,ALIAS 有什么用))