MS Access 导航窗体下引用frmRequests窗体RequestID字段失效问题求解
问题原因
你遇到的失效问题是因为Access导航窗体中嵌入的表单不属于顶级Forms集合的直接子项,而是作为导航窗体内部子窗体控件的内容存在,你原来的路径=[Forms]![frmRequests]![RequestID]只能匹配独立打开的frmRequests实例,无法识别导航窗体内嵌套的实例。
解决方案
- 首先确认两个核心名称:你的导航窗体的实际名称、导航窗体中子窗体容器控件的名称(默认导航窗体的子窗体容器名为
NavigationSubform,如果未手动修改可直接使用默认值) - 打开多请求窗体的设计视图,进入ID字段的属性表→数据→默认值栏,替换原有表达式为以下内容:
=IIf(CurrentProject.AllForms("frmNavigation").IsLoaded, [Forms]![frmNavigation]![NavigationSubform]![RequestID], [Forms]![frmRequests]![RequestID]) - 保存修改后测试效果即可
表达式说明
- 首先判断导航窗体是否处于打开状态,如果是,就从导航窗体的子窗体容器中读取
RequestID值,适配你日常在导航窗体使用的场景 - 如果导航窗体未打开,就读取独立打开的
frmRequests的RequestID值,兼容单独打开表单的场景
如果你的导航窗体名称不是默认的frmNavigation,或者子窗体容器名有修改,替换表达式中对应的名称即可。
内容的提问来源于stack exchange,提问作者CarmenV
相关产品推荐
相关产品推荐

