[英]Microsoft Access Where Condition doesn't works in a subform
我把宏放在哪里条件单击:
=“ IDclient_logindata =”&[Maschere]![clientlist]![IDclient]
这意味着当我单击一个id客户端时,访问权限将使用相应的IDclient打开另一个表单。 例如,如果我单击IDclient 3:
它打开另一个名为“ client_logindata”的表单以过滤IDclient_logindata3。然后,我构建了一个导航表单: 使用clientlist作为子表单。 但是,当我单击一条记录(任何记录)时,每次在ID_client_logindata form = 1的client_logindata表单中打开它,为什么它不能在子表单中工作? “导航表格”的设计视图:
通过这种方式解决:=“ IDclient_logindata =”&[IDclient]
使用子窗体时, 对控件的引用必须相对于将子窗体视为子控件的主窗体。
考虑将条件调整为以下结构。 请注意,这是英文版本:
="IDclient_logindata=" & Forms!myMainForm!mySubform.Form!mySubformControl
或专门为您量身定做(请确保所有对象的拼写正确):
="IDclient_logindata=" & Forms!NavigationForm!clientlist.Form!IDclient
OP找到了一个可行的解决方案,它比随后的解决方案简单得多。 但是,我仍然很想知道我们是否可以在原始模型上使用某些功能,并且我猜想对于尝试使用VBA而不是嵌入式宏的用户来说,以下内容可能仍然有用。
原始问题中的代码存在问题,即相关表单不是在“顶层”打开,而是作为子表单打开。
表单“普通”子表单,您可以像下面这样引用子表单上的控件:
Forms!navform!clientlist.form!IDclient
其中navform
是外部表单的名称。 或在一般情况下,如下所示:
Forms!Mainform!Subform1.Form!ControlName
但是,将“子窗体”拖到“ 布局”视图中的“ 添加新”选项卡上时,“导航窗体”向导不能很好地命名子窗体。 所以我不得不这样编码:
Forms![Navigation Form]!NavigationSubform.Form!ControlName
令我惊讶的是,当我在“导航表单”选项卡中添加更多表单并且控件的名称与所讨论的表单相同时,此代码继续起作用。 我猜想NavigationSubform
自动指向当前焦点所在的选项卡。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.