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

Access如何实现类似Excel INDEX MATCH的按编码跨表调用信息功能

Access 实现跨表匹配调取信息(等效Excel INDEX+MATCH功能)

两张测试表结构参考:
ind表结构
sam表结构

Access中实现「输入编码自动匹配另一张表关联信息」的逻辑和Excel INDEX+MATCH完全一致,都是按共同编码字段做关联匹配,有3种可直接落地的实现方式:

方法1:建立表关系+绑定查询(零代码,适合日常表操作)

  • 打开数据库的「关系」编辑窗口,添加ind和sam两张表
  • 拖动ind表中存储编码的字段(即输入it20的字段),连线到sam表对应的编码字段,双击连线可按需勾选参照完整性,避免输入不存在的无效编码
  • 新建选择查询,将ind表需要展示的字段、sam表需要调取的所有关联字段拖入查询设计网格,保存查询即可。后续在ind表输入编码后,打开该查询就能自动带出所有匹配的关联信息。

方法2:DLookup函数(和INDEX+MATCH逻辑完全对齐,适合窗体实时填充)

如果是在窗体端输入编码,需要输入后立刻自动填充对应信息,直接在待填充控件的「控件来源」属性中写DLookup表达式即可,语法对应关系:

  • Excel INDEX+MATCH逻辑:=INDEX(返回值列, MATCH(查找值, 查找列, 0))
  • Access DLookup逻辑:=DLookup("返回值字段名", "查找表名", "查找字段名='" & 查找值控件 & "'")

举个实际使用例子:如果要从sam表调取「物品名称」字段,输入编码的输入框控件名为txt_input_code,sam表存储编码的字段名为item_code,直接填入以下表达式即可:

=DLookup("物品名称", "sam", "item_code='" & [txt_input_code] & "'")

注意:如果编码字段是数字类型,去掉表达式里的单引号,写成"item_code=" & [txt_input_code]即可。输入编码后控件会自动完成匹配填充,无需额外触发。

方法3:SQL关联查询(适合批量匹配全量数据)

如果需要一次性匹配ind表所有记录的关联信息,直接运行关联查询SQL即可,效率远高于Excel下拉公式,适合万级以上数据量场景:

SELECT ind.*, sam.物品名称, sam.规格, sam.单价
FROM ind LEFT JOIN sam ON ind.编码字段名 = sam.编码字段名;

执行后会返回ind表的全部记录,以及匹配到的sam表对应字段值,和全列下拉INDEX+MATCH的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:01:07