使用 MS Acess 2016 删除记录的特定字段,同时仍在查询中显示整个数据集

使用 MS Acess 2016 删除记录的特定字段,同时仍在查询中显示整个数据集

我希望在 MS Access 2016 中查询我的数据集,其中查询的输出中仅包含特定字符串(请查看附带的图像)。我希望包括“Pest_com”列中包含单词“rat”、“mouse”、“stoat”和“possum”的所有字符串字段,同时排除这些列中的所有其他字段。

通常情况下,我会使用父表的左连接和后续运算符,但我希望保留表的所有记录。以这种方式设置查询似乎会过滤掉不包含我要查找的字符串的记录。相反,我想保留查询中的所有记录,并仅删除不包含我想要的信息的字段。

在此先感谢您的帮助!

在此处输入图片描述

答案1

我认为您想要的是,如果值与您的测试列表匹配,则在字段中显示该值。在这种情况下,我将使用 IIF 函数。第一个参数是一个逻辑测试,您需要确定是否存在匹配。如果是,则显示该值,否则,显示空白。

在 QBE 中,您可以用下面的内容替换 Pest_Com1,其中 tbl 的使用是表的名称。

Pest_COM1: IIF (tbl.Pest_COM1 LIKE "*rat*" OR tbl.Pest_COM1 LIKE "*mouse*" OR tbl.Pest_COM1 LIKE "*stoat*" OR tbl.Pest_COM1 LIKE "*possum*",tbl.Pest_COM1, "")

您可以对其他列重复此操作。对于此类情况,我经常将其粘贴到记事本中,替换字段名称,然后复制回查询,而不是手动编辑每个案例。

如果您实际上只想包含相关字段,则必须在 vba 代码中构建 SQL 字符串。您必须确定每个字段中是否有值才能确定是否包含。您可以使用与上述类似的 IIF 来实现这一点,但将 true 部分(第二个参数)替换为 1,将 false 部分(第三个参数)替换为 0。然后求和。如果字段的值 > 0,则需要包含该字段。这只是查询部分。

相关内容