切换子窗体的可见性设置为true,而在-把相同的ID号的新纪录

问题描述 投票:0回答:1

我有一个表格来跟踪学生提交的文书工作。正如有人进入学生的ID到表单中,我有填充使用StudentID向我们展示了,如果学生以前提交一些子窗体的查询。

如果已经有一个匹配StudentID它的伟大工程。但是,如果没有匹配的StudentID我得到

运行时错误“2427”:您输入一个没有价值的表达式。

这是AfterUpdate StudentID事件:

    DoCmd.OpenQuery "IntakePrevious_Q"
    DoCmd.Close acQuery, "IntakePrevious_Q", acSaveYes
    [Intake_QSF].Requery

    If Me.StudentID = ([Intake_QSF]![StudentID]) Then
        Me.Intake_QSF.Visible = True        
    End If

End Sub
vba ms-access
1个回答
0
投票

问题是,因为你已经提到的,没有记录。

更换

If Me.StudentID = ([Intake_QSF]![StudentID]) Then
    Me.Intake_QSF.Visible = True        
End If

这样:

Me.Intake_QSF.Visible = Me.Intake_QSF.Form.Recordset.RecordCount > 0

它会检查是否有在所有记录,并设置Visible属性的布尔值。

编辑:

另外,您可以检查子窗体的当前记录是一个新的记录:

Me.Intake_QSF.Visible = Not Me.Intake_QSF.Form.NewRecord
© www.soinside.com 2019 - 2024. All rights reserved.