微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用存储在另一个表中的关键字过滤 Access 表

如何解决使用存储在另一个表中的关键字过滤 Access 表

我有 3 个访问表:tblClients、tblSalesRecords、tblKeywords。它们都由 ClientID 键链接。我的一些客户只需要出现在销售说明记录中的特定品牌的销售记录。因此,我创建了 tblKeywords,其中包含每个客户的关键字(从几个关键字到数十个)。

我需要可以附加到可以根据每个客户端的关键字获取这些记录的表单/报告/查询的 VB 代码。我只能对 ONE 关键字执行此操作,但无法弄清楚如何创建包含所有关键字的完整字符串。

以下是链接到用于准备报告的表单的 sql 代码

SELECT tblSalesRecords.SalesID,tblSalesRecords.ClientID,tblSalesRecords.ItemDescription,tblSalesRecords.Qty
FROM tblSalesRecords
WHERE (((tblSalesRecords.ItemDescription) Like "*" & [Forms].[KeywordsSubform].[Keyword] & "*"));

关键字表示例如下:

客户 ID|关键字 101|三星 101|苹果 101|东芝 102|汽车 102|摩托车 102|公交车

谢谢。

解决方法

一种方法是让一个字段包含要匹配的 EXACT 字符串:

SELECT * FROM tblSalesRecords 
WHERE somefield IN (SELECT keyword FROM tblKeywords) 
AND ClientID = Forms!formname!ClientID

另一个使用 DLookup()。

SELECT * FROM tblSalesRecords 
WHERE NOT DLookup("ClientID","tblKeywords","'" & [fieldname] & "' LIKE '*' & [Keyword] & '*'") IS NULL
AND ClientID = Forms!formname!ClientID;

否则,很可能需要一个 VBA 自定义函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。