表单上的选项卡控件和字段检查

时间:2015-08-05 15:35:32

标签: vba ms-access access-vba ms-access-2007 tabcontrol

MS ACCESS 2007 VBA代码建设者

当使用

选择Tab时,我能够在VBA代码中显示MsgBox
Private 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代码以便它可以做我想要的?

1 个答案:

答案 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,而不是将其视为默认属性。)