在输入相同ID号的新记录时,将子窗体的可见性切换为true

时间:2019-02-05 20:10:41

标签: vba ms-access

我有一个表格来跟踪学生提交的文书工作。当有人在表单中输入学生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

1 个答案:

答案 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