MS Access Query,显示所有记录的条件

Posted

技术标签:

【中文标题】MS Access Query,显示所有记录的条件【英文标题】:MS Access Query, criteria to show all records 【发布时间】:2019-02-05 12:41:12 【问题描述】:

我正在使用 MS Access 2010 向导查询来过滤表。 我想要得到的结果是一个返回数据库的表: - 今天是星期几 - 正在使用它的用户(用户:下表中的 AAA、BBB、DDD)。

示例表如下所示:

Monday | Tuesday
AAA    | BBB 
AAA    | BBB 
DDD    | AAA
DDD    | AAA

我想要的结果 如果今天是星期一,我想要 AAA 的数据

Monday | Tuesday
AAA    | BBB 
AAA    | BBB 

如果今天是星期二,我想要 AAA 的数据

Monday | Tuesday
DDD    | AAA
DDD    | AAA

到目前为止我的想法: 在条件字段中,我输入了一个条件:

IIf([TempVars]![WorkingDay]=2,[TempVars]![WorkingUser],*)

我的理解是: -> 如果今天是第二天(星期二),则显示 AAA 的数据,否则(不是星期二)显示全部。

我检查了 TempVars(在访问基地打开时计算),它们是正确的并且相等: [TempVars]![WorkingDay]=2 [TempVars]![WorkingUser]=AAA

这确实有效 -> 我看到了 AAA 的记录,但是如果今天不是星期二(TempVar = 1)我想查看所有记录(编译器应该进入错误的声明,即“*”,但我实际上没有看不到任何记录...编译器进入错误语句,如果我手动插入“BBB”我会得到 BBB,但是 我不知道我应该输入什么,所以我得到了所有数据。

我不确定那句话有什么问题,我尝试了而不是“*”,输入: - 喜欢(“*”) - 喜欢“*” -(不为空)或(为空) 在 Access 中显示如下:Screen from Access SQL 代码,由 Access 生成:

SELECT
t001.Monday, t001.Tuesday
FROM
 Tbl_001_WholeBase AS t001
WHERE
 (((t001.Monday)=IIf([tempvars]![WorkingDay]=1,[tempvars]![WorkingUser],"*")) AND ((t001.Tuesday)=IIf([tempvars]![WorkingDay]=2,[tempvars]![WorkingUser],"*")));

感谢您的帮助,谢谢。

【问题讨论】:

【参考方案1】:

您应该考虑规范化您的数据,以便使用 Weekday 字段表示工作日,而不是为一周中的每一天使用单独的字段。

尽管如此,以下查询使用Choose 函数来获得所需的结果:

select
    t001.Monday, t001.Tuesday
from
    tbl_001_wholebase t001
where
    choose
    (
        [tempvars]![WorkingDay],
        t001.Monday  = [tempvars]![WorkingUser],
        t001.Tuesday = [tempvars]![WorkingUser]
    )

或者,使用逻辑运算符:

select
    t001.Monday, t001.Tuesday
from
    tbl_001_wholebase t001
where
    ([tempvars]![WorkingDay] = 1 and t001.Monday  = [tempvars]![WorkingUser]) or
    ([tempvars]![WorkingDay] = 2 and t001.Tuesday = [tempvars]![WorkingUser])

您的查询未能返回所需结果的原因是* 通配符应与like 运算符一起使用,而不是= 运算符。

【讨论】:

以上是关于MS Access Query,显示所有记录的条件的主要内容,如果未能解决你的问题,请参考以下文章

MS Access Query 以检索订单日期列中最新日期的记录

MS Access - 为什么我会得到空白表格

VB6、MS Access、DAO - 显示列名不为空的所有记录

MS Access Query 中的语法错误 [重复]

SQL MS Access查询的排除条件

基于筛选查询的MS Access查询