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

Access中DLookup公式持续返回#Name?错误求助

解决Access子窗体控件DLookup返回#Name?错误的方法

问题根源

你在表达式里引用子窗体控件时使用了完整的主窗体层级路径,但在子窗体内部直接引用同窗体的控件,不需要加上主窗体和子窗体的路径前缀,这会导致Access无法识别控件名称,从而返回#Name?错误。另外字符串拼接的引号处理也存在潜在问题。

修正后的控件来源表达式

将KodeAkun控件的来源替换为以下表达式:

=IIf(IsNull([NamaAkun]) Or [NamaAkun]="", "", DLookUp("[KodeAkun]", "CoA", "[NamaAkun]='" & Replace([NamaAkun], "'", "''") & "'"))

关键调整说明

  • 简化控件引用:在子窗体内部直接用[NamaAkun]即可,无需[Forms]![InputIDJurnal]![DetJurnal]![NamaAkun],Access会自动识别同窗体的控件
  • 完善空值处理:新增IsNull([NamaAkun])判断,覆盖控件值为Null的场景,避免不必要的报错
  • 处理特殊字符:用Replace([NamaAkun], "'", "''")转义NamaAkun值中的单引号,防止DLookup的条件字符串因特殊字符断裂

额外优化建议

如果NamaAkun是下拉选择控件,建议在其更新后事件中添加代码,确保KodeAkun的值实时同步:

  1. 打开子窗体设计视图,选中NamaAkun控件
  2. 打开控件的事件属性面板,找到更新后事件
  3. 选择“代码生成器”,添加以下VBA代码:
    Me.KodeAkun.Requery
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:47:06