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

Access中按合同生成连续采购订单编号失败求助

解决Access表单中DMax函数返回#Name?错误的问题

出现#Name?错误大多是参数拼写不对、引用格式错误或者控件/表不可访问导致的,按下面的步骤排查修复:

  • 检查拼写一致性
    先确认PO字段、POt表名、Contract number字段名和数据库里的完全一致,包括空格、大小写(Access不区分大小写,但别写错字)。比如别把Contract number写成ContractNumber,或者表名写成PO_Table。

  • 修正DMax的条件参数格式
    你原来的写法没引用当前表单的合同号值,DMax不知道要针对哪份合同查最大PO。假设表单上用来选择合同号的控件名叫txtContractNum,表单名叫frmPOCreate:

    • 如果合同号是文本类型,控件源应该写成:
      =Nz(DMax("[PO]","POt","[Contract number] = '" & Forms!frmPOCreate!txtContractNum & "'"), 0) + 1
    • 如果合同号是数字类型,去掉单引号:
      =Nz(DMax("[PO]","POt","[Contract number] = " & Forms!frmPOCreate!txtContractNum & ""), 0) + 1
  • 处理空值情况
    当某份合同还没有任何PO记录时,DMax会返回Null,直接加1会出错,用Nz函数把Null转为0,就能正常生成第一个编号(1)。

  • 确认表和控件的可访问性
    确保POt表是当前数据库的本地表,或者链接表的链接状态正常;同时确认表单上的合同号控件确实存在,名称和你引用的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:20:29