You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access 2016用Like模糊匹配跨表查询不同格式发票号的方法咨询

Access 2016 双表发票前缀匹配查询设置方案

前提确认

先确认你用到的几个对象的实际名称,以下示例中使用的占位符可自行替换:

  • 输入前缀的窗体名称:frm_InvoiceQuery
  • 窗体上的输入文本框控件名称:txt_InvoicePrefix
  • 存储供应商发票的表名:供应商表
  • 存储内部唯一发票号的表名:内部表

方案1:查询设计视图设置(适合需要关联对比两张表记录的场景)

  1. 打开查询设计视图,添加供应商表和内部表
  2. 建立两表的关联规则:右键点击两表的关联线(没有的话拖动供应商表.[Invoice Number]到内部表.[Invoice Number]创建),选择「联接属性」,设置为左联接或右联接(根据你需要保留哪张表的全部匹配记录),关联条件替换为:
    供应商表.[Invoice Number] = Left(内部表.[Invoice Number], InStr(内部表.[Invoice Number], "_") - 1)
  3. 将两张表需要展示的字段拖到查询字段行,在任意一张表的Invoice Number字段的「条件」行输入以下内容:
    Like [Forms]![frm_InvoiceQuery]![txt_InvoicePrefix] & "*"

方案2:SQL联合查询设置(适合需要合并展示两张表所有匹配记录的场景)

直接打开查询的SQL视图,粘贴以下语句并修改占位符即可:

SELECT "供应商侧" AS 记录来源, [Invoice Number], 其他字段1, 其他字段2 
FROM 供应商表
WHERE [Invoice Number] Like [Forms]![frm_InvoiceQuery]![txt_InvoicePrefix] & "*"
UNION ALL
SELECT "内部侧" AS 记录来源, [Invoice Number], 其他字段1, 其他字段2 
FROM 内部表
WHERE [Invoice Number] Like [Forms]![frm_InvoiceQuery]![txt_InvoicePrefix] & "*"

注意事项

  • 运行查询时需要保证绑定的窗体处于打开状态,否则Access会自动弹出参数输入框要求输入发票前缀
  • 如果不需要区分记录来源,去掉UNION ALL上方和下方SELECT语句里的"供应商侧" AS 记录来源、"内部侧" AS 记录来源部分即可
  • 确保两张表的其他字段数量、数据类型一一对应,否则联合查询会报错

内容的提问来源于stack exchange,提问作者Tbure90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:24:02