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:未绑定的子窗体控件不可点击的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VB6 窗体中使用 Microsoft Office Access 的子窗体控件?