使用单独的表搜索访问字段

时间:2018-03-22 04:03:16

标签: ms-access ms-access-2010 ms-access-2013 ms-access-2016

我有一个访问查询,它使用1个原始数据表构建,以查看信用和取消费用。

我正在尝试填充“原因代码”#39;通过搜索“描述”来查询此查询中的字段。各种关键字的字段。

例如,如果'说明'字段包含'错误'那么原因代码'字段应该填充“客户错误”。

如果'说明'字段包含'回扣'那么原因代码'字段应该填写“客户合同折扣”字样。等等。

目前,我正在使用以下表达式

执行此操作

* Reason_Code:IIf([说明]喜欢&#34; 折扣&#34;或[说明]喜欢&#34; 免费&# 34;或[描述]喜欢&#34; 回扣&#34;,&#34;客户合同折扣&#34;,IIf([描述]喜欢&#34; 错误< / em>&#34;,&#34;客户错误&#34;,&#34;&#34;))*

但是,在搜索中可以找到大约100个关键字,每个关键字使用不同的原因代码,因此使用表达式是不可行的。

因此,我想以某种方式引用包含100个关键字和原因代码的另一个单独的表来进行搜索,而不是编写表达式。

问题是这个&#39;原因代码&#39;之间没有联系。表和主表(查询所基于的)作为关键字只会成为&#39;描述&#39;的一部分。主表的字段永远不会完全匹配,因此我无法以任何方式链接2。

有没有办法使用单独的原因代码&#39;表格有2个字段:(1)关键字&amp; (2)原因代码,以便关键字字段可用于在查询中进行搜索/匹配,然后为找到关键字的所有字段返回相关的原因代码?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用DLookUp或子查询从不同的表中查找信息。查询中的首选方法是使用子查询。

如果您想以表达式的形式进行,可以使用以下内容:

Reason_Code:(SELECT Reason_Code From OtherTable WHERE OtherTable.Keyword = MainTable.Description)

答案 1 :(得分:0)

您可以使用以下内容:

Nz(DLookup("[ReasonCode]","[LooukUpTable]","'" & [Description] & "' LIKE '*[KeyWord]*'"),"")

根据您使用它的位置(在SQL或VBA中),可能需要进行小的更改。