我有一个表格来跟踪学生提交的文书工作。当有人在表单中输入学生ID时,我有一个查询,该查询使用StudentID填充子表单,以向我们显示该学生先前是否提交过某些东西。
如果已经有匹配的StudentID,则效果很好。但是,如果没有匹配的StudentID,我会得到
运行时错误'2427':您输入的表达式没有值。
这是在AfterUpdate
学生ID事件中:
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
答案 0 :(得分: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