MS ACCESS 2007 VBA代码建设者
当使用
选择Tab时,我能够在VBA代码中显示MsgBoxPrivate Sub TabCtl34_Change()
If Me.TabCtl34.Value = 1 Then 'First Page
MsgBox "Hi"
End If
End Sub
但是我还想检查第二个选项卡是否被选中,并且表单上的字段(名称)是否为空(不在选项卡上),msgbox或取消事件要求在看到第二个选项卡之前输入名称。
当我加入时:
Private Sub TabCtl34_Change()
If Me.TabCtl34.Value = 1 AND [FORMS]![FORMNAME]![NAME] IS NULL Then
MsgBox "Hi"
End If
End Sub
即使名称为null,它也会直接转到第二个选项卡。我如何编写vba代码以便它可以做我想要的?
答案 0 :(得分:2)
IS NULL
用于查询表达式,来自VBA使用IsNull()
VBA函数。
If Me.TabCtl34.Value = 1 AND IsNull([FORMS]![FORMNAME]![NAME]) Then
当您从表单模块运行时,您可以使用Me
来引用当前的表单实例:
If Me.TabCtl34.Value = 1 AND IsNull(Me.[NAME]) Then
您还应该考虑该值可能是空字符串,而不是NULL。您可以使用以下方法组合两种检查:
If Me.TabCtl34.Value = 1 And Len(Me.[NAME].Value & "") = 0 Then
连接空字符串""将NULL值强制转换为字符串。
(最好明确标识属性Value
,而不是将其视为默认属性。)