对子窗体的Form属性的引用无效(ms Access 2007)

时间:2011-02-16 23:52:50

标签: ms-access vba ms-access-2007 access-vba

我使用的技术类似于Remou对this question的回答,以操纵子窗体上控件的性能。只要父表单的记录集至少有一个记录,就可以很好地运行。如果父表单没有记录,我会得到:

错误2455,“您输入的表达式对属性表单/报表的引用无效。”

尝试递归调用时抛出错误。下面是代码的简化版本(我已经删除了错误处理和更多案例,包括其他案例)。此代码位于Module中,并从我的应用程序中的大多数表单的Load事件中调用:

Public Sub LockUnlockForm(frmLoad As Form)

Dim ctl As Control

    For Each ctl In frmLoad.Controls
        With ctl
            Select Case .ControlType
                Case acTextBox, acComboBox, acCheckBox
                    .Locked = Not gblnAuthorized
                Case acSubform
                    LockUnlockForm .Form  '<--- this line errors
            End Select
        End With
    Next

End Sub

我想在现在给我问题的表单上做的是在父级别创建一条新记录,并允许用户将数据添加到子表单(如果gblnAuthorized为True,或者设置一个简单的消息,如果它是假的)。在致电LockUnlockForm之前,我别无选择吗?创建新的父表单级记录是否可以防止出现此错误?

1 个答案:

答案 0 :(得分:10)

  

确定的记录数   表单的记录集,只运行For   当记录计数>时,每个循环0

我正在回答这个问题,因此具有相同问题的其他用户可以轻松确定所提供的答案。它已经过去了一个月陈旧。如果可以,将信用证转给HansUp!