以下是我对问题的诊断.感觉就像一个BUG.
我的问题是:你们有没见过这个?如果您有兴趣,可以尝试复制问题,让我知道您发现了什么吗?
问题:
>我有一个独立工作的表单,为每个子表单设置记录源
>但是当它放入子窗体控件时,表单失败,在尝试设置SubForm.Form.RecordSource属性时为每个子窗体抛出错误2455(但同样,仅当窗体本身是子窗体时)
经过大量的实验,我把它缩小到这个:
> SubForm控件太短,无法显示表单的详细信息部分.只有标题可见.
>由于表单的详细信息不可见,Access默认禁用表单下的所有子表单!
我的解决方法:始终确保至少部分表单的详细信息部分在SubForm控件中可见.或者:
>增加SubForm控件的高度
>将控件从表单标题移动到详细信息,并使标题更短或不可见,因此只显示详细信息.
你能复制一下吗?这很奇怪,所以我想对这个问题进行一些独立的确认.所以,如果你有一点时间,请尝试以下步骤:
>制作表格:
>包含孙子表单的子表单控件
>标题部分,高度0.5英寸
>在父子窗体控件中将此窗体添加为子窗体
>工作案例:
>将父级的子窗体高度设置为.6英寸,以便显示子级的详细信息部分
>在代码中,请参阅子的subform.Form.RecordSource属性(孙子).
>期望:没有错误
>失败的案例:
>现在,将父子窗体高度设置为.4英寸,因此细节不可见
>重新运行触及子项的subform.Form.RecordSource属性的代码.
>期望:运行时错误2455
我的’孙子’表单在加载时没有RecordSource.在父/子表单加载后,将在代码中设置记录源.
请指出您正在运行的Access版本以及获得的结果.我正在运行Access版本14.0.7128.5000,这似乎是最新的.
解决方法 尽管这是一个老线程并且OP的答案肯定是其他的东西,但我希望它能帮助为那些在“错误2455”上遇到障碍的其他人提供一些启示:你输入了一个表达无效的表达式财产表格/报告“.这可能相当混乱,并且远离错误的实际原因.今天发生在Access 2016上.在对项目进行一些更改时,其中一个表单突然在其包含一行代码的Form_Load()事件中抛出了错误2455:
Private Sub Form_Load() Set mevtReferencetoSubform = Me.frmASubform.FormEnd Sub
正如stackoverflow.com/questions/5023631/…在对该问题的评论中所指出的:
“Controls bound to the recordsource of the parent form (including subforms with linkChild/linkMaster propertIEs) do not load when there are no records.”
显然,对于未绑定的子表单也是如此.如果父窗体的RecordSource查询没有返回任何记录,则子窗体’.Form’属性将无法从其父窗体访问!
在我的情况下,罪魁祸首被证明是一个TempVar声明,我已经用代码中的其他解决方案替换了它.但是没注意到删除的TempVar甚至被现在失败的父表单的查询使用了,它没有返回任何结果……
总结以上是内存溢出为你收集整理的ms-access – 子表单引用throws错误2455:您输入的表达式对属性Form / Report的引用无效全部内容,希望文章能够帮你解决ms-access – 子表单引用throws错误2455:您输入的表达式对属性Form / Report的引用无效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)