【问题标题】:Access VBA: Unbound subform controls are not clickableAccess VBA:未绑定的子窗体控件不可点击
【发布时间】: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 的记录集

任何想法都值得赞赏!

谢谢, 托马斯

【问题讨论】:

    标签: ms-access vba controls subform


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多