Access VBA:未绑定的子窗体控件不可点击

Posted

技术标签:

【中文标题】Access VBA:未绑定的子窗体控件不可点击【英文标题】:Access VBA: Unbound subform controls are not clickable 【发布时间】:2015-01-16 14:41:24 【问题描述】:

我确实有一个未绑定的搜索表单,其中一个列表框填充了搜索结果。选择一个列表框项目并单击“查看详细信息”按钮后,将显示绑定表单 RSdetails

30      DoCmd.OpenForm "RSdetails", , , "[ID]=" & selectedID, , acDialog

绑定的表单 RSdetails 包含一个未绑定的子表单 RSmails。子表单 RSmail 中的所有控件也未绑定。

此子表单的目的是建立到 Lotus Notes 邮箱的连接并搜索包含特定键的邮件。

子表单有 2 个下拉菜单用于选择视图和搜索时间范围、2 个按钮(搜索和中止)和一个用于显示匹配项的列表框。

现在,如果我直接打开此表单 RSmails,我可以在下拉列表中进行选择并单击按钮。

如果此表单 (RSmails) 被视为 RSdetails 的子表单,我将无法做出任何选择。下拉菜单和按钮已启用,但没有显示任何反应。

我已经尝试过,但没有成功:

在 acWindowNormal 中而不是在 acDialog 中打开 RSdetails 将 RSmails 绑定到一个表,该表与 RSdetails 绑定到的表有关系,并且肯定有一个带有 selectedID 的记录集

任何想法都值得赞赏!

谢谢, 托马斯

【问题讨论】:

【参考方案1】:

显然您将子表单与锁定版本一起放置。检查子表单的属性(进入表单)并验证: - 可以添加吗? (如果您创建了所有内容,我认为必须是 NO) - 可以删除吗? (我认为必须是 NO,因为只能读取记录) - 可以编辑? (我认为实际上你没有,必须是 YES)

【讨论】:

AllowAdditions 和 AllowDeletion 为 no,AllowEdits 设置为 yes。如果应该向每个用户显示子表单,那么将子表单 RSmails 中的所有控件放入主表单 RSdetails 将没有问题,但是:并非每个用户都可以访问连接的 Lotus Notes 邮箱,因此我正在使用功能。我创建了一个带有用户 ID 的表,并且像 canUser("mail") 这样的函数正在切换子表单 sourceObject 和可见性。 :-( 主窗体和子窗体之间的关系是什么?我认为在这种情况下必须没有,因为您需要通过某些用户属性从主表单中过滤。 子表单的 RecordSource 属性为空。根本没有关系,除了子表单中的一个下拉菜单从主表单请求一个值来预选一个值,比如 me.dropdown.value =me.parent.BOUNDVALUE 父子链接属性也是空的。 有什么网站可以下载和检查问题吗? Dropbox 或类似的。或者直接到我在 gmail dot com 的邮件 juanmastercafe 【参考方案2】:

结论:通过将每个表/表链接、表单、查询、模块导出到一个空白的新项目,问题得到了解决。问题消失了,应用按预期运行。

没有找到真正的原因,但是根据上面的解决方法,它看起来像是Access中未定义的hick up。

【讨论】:

以上是关于Access VBA:未绑定的子窗体控件不可点击的主要内容,如果未能解决你的问题,请参考以下文章

访问子窗体未绑定控件#Error

如何在 VB6 窗体中使用 Microsoft Office Access 的子窗体控件?

使用 VBA 从主窗体设置子窗体上的窗体属性

在子报表的子窗体中引用未绑定的文本框

在按钮单击 MS Access 2013 VBA 在子窗体中创建新记录

Vba中窗体部件点击事件?