如何在MS Access 2016中匹配多字段关键词并生成新表
在MS Access 2016中实现交易关键词匹配与BankReady表生成
操作步骤:
1. 确认表结构
确保已创建好以下两张表:
- Codes表(Table1):包含
SEARCHFOR(待匹配关键词)、CODE(对应编码)、TOCHECK(人工检查标记)三个字段,数据与示例一致。 - TmpBankImport表(Table2):已导入银行CSV数据,包含
ACCOUNTNR、DESCRIPTION、REFERENCE三个字段。
2. 创建匹配查询
打开Access,新建查询并切换到SQL视图,输入以下SQL语句:
SELECT TmpBankImport.ACCOUNTNR, TmpBankImport.DESCRIPTION, TmpBankImport.REFERENCE, Nz(Codes.CODE, "") AS CODE, Nz(Codes.TOCHECK, "Y") AS TOCHECK FROM TmpBankImport LEFT JOIN Codes ON (TmpBankImport.ACCOUNTNR LIKE "*" & Codes.SEARCHFOR & "*") OR (TmpBankImport.DESCRIPTION LIKE "*" & Codes.SEARCHFOR & "*") OR (TmpBankImport.REFERENCE LIKE "*" & Codes.SEARCHFOR & "*");
- 逻辑说明:通过左连接保留TmpBankImport的所有记录,用
LIKE模糊匹配三个字段中是否包含Codes表的关键词;Nz函数处理无匹配的情况,自动将CODE设为空、TOCHECK设为Y。
3. 验证查询结果
运行查询,核对返回数据是否与预期的BankReady表一致,重点检查:
- 匹配到关键词的记录是否正确关联
CODE和TOCHECK值 - 无匹配的记录是否自动填充
TOCHECK为Y、CODE为空
4. 生成BankReady表(Table3)
确认查询结果正确后,将查询转换为生成表查询:
- 在查询设计界面,点击顶部菜单栏的【查询类型】→【生成表】
- 在弹窗中输入表名
BankReady,选择当前数据库,点击确定 - 再次运行查询,Access会自动创建BankReady表并写入匹配后的数据
可选优化
- 若Codes表存在多关键词匹配同一条交易的情况,需确保
SEARCHFOR的唯一性,或添加优先级字段调整匹配逻辑,避免生成重复记录。 - 可将该查询保存为
qryBankMatch,后续每次导入CSV到TmpBankImport后,直接运行生成表查询即可更新BankReady表。
内容的提问来源于stack exchange,提问作者gunther herremans
相关产品推荐
相关产品推荐

