我有一个表格来跟踪学生提交的文书工作。正如有人进入学生的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
问题是,因为你已经提到的,没有记录。
更换
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