gpt4 book ai didi

ms-access - 尝试从子窗体 Access 孙窗体时出现 Microsoft Access 运行时错误 2455

转载 作者:行者123 更新时间:2023-12-01 06:40:56 28 4
gpt4 key购买 nike

我在 Access 2003 数据库(在 Access 2007 中开发)中有三个表单,它们处于父级 -> 子级 -> 孙子级关系中。在子窗体的 'Form_Load' 子窗体中,我设置了孙子窗体的一些属性(窗体标题、行源和控制逻辑)。当我查看子表单时,一切正常。当我查看父表单时,出现错误:

Run-time error '2455': You entered an expression that has an invalid reference to the property Form/Report.



引用该行:
Me.GrandchildFormName.Form.Foo.Caption = "bar"

我可以 Access 除了 Form 属性之外的孙表单的任何属性而不会引发任何错误。有谁知道这可能是什么原因造成的?我在一个新数据库中创建了一个测试用例并且它运行良好,所以我倾向于在我从数据库中继承的遗留代码中存在一些东西(有人告诉我,它可以追溯到 18 年前的预 Access 数据库系统)导致问题,但我想我会在这里检查,看看你们中是否有人可能知道解决方法。

如果相关,表单的实际结构会稍微复杂一些,孙表单在子表单中出现多次(在不同的控件名称下),如下所示:
|--------------|
| A |
| |----------||
| | B ||
| | |------|||
| | | C[1] |||
| | |------|||
| | ||
| | |------|||
| | | C[2] |||
| | |------|||
| |----------||
|--------------|

消除除一种孙形式之外的所有形式并不能解决问题。

如果孙子表单有办法知道它正在加载哪个实例,我可能可以编写代码来解决这个问题,但据我所知,这是不可能的。

最佳答案

我会用 Parent , Child , 和 GrandChild用于引用相应的表格(而非数据来源)。

一般是Form子窗体控件的属性仅在子窗体显示后才获得“有效引用”。因此,如果你想执行 Child.Form_Load 中的代码,你必须确保 GrandChildParent 时可见打开。

解决方案

因为我假设在你的情况下 GrandChild如果您打开 Child 可见(不开放 Parent)但 GrandChild打开时不可见 Parent ,我会建议以下解决方案,而无需更改您的用户界面:

移动代码Child.Form_Load , Access GrandChild.Form , 进入 GrandChild.Form_Load .每当 GrandChild加载它可以 Access 来自 Child 的所有内容( Me.Parent.Form ) 甚至 Parent ( Me.Parent.Parent.Form )。

换句话说 GrandChild必须提取信息(来自 ChildParent )并更改自身而不是 Child推送信息到GrandChild通过更改 GrandChild .

示例:

比方说 ParentChild 有 1:n 的关系和 ChildGrandChild 有 1:n 的关系. Parent礼物 Child因此作为数据表 GrandChildParent 时不显示打开。在这种情况下,可以 Access GrandChild.Form由于 GrandChild 导致 2455 运行时错误未显示。

在本例中,Child 的每一行数据表将有一个加号,允许显示 GrandChild .假设您在 Parent 上放了一个按钮它执行您当前在 Child.Form_Load 中的代码子。在 Parent 之后单击此按钮打开会导致错误(见上文),但如果您单击 Child 中的加号之一然后单击按钮,代码将执行而不会出现 2455 错误,因为在这种情况下 GrandChildGrandChild.Form 之前可见 Access 被执行。

关于ms-access - 尝试从子窗体 Access 孙窗体时出现 Microsoft Access 运行时错误 2455,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10401501/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com