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

Tab Control and Field Check on Form

MS 访问 2007 VBA 代码生成器

当使用

选择选项卡时,我能够在 VBA 代码中显示 MsgBox
Private Sub TabCtl34_Change()
If Me.TabCtl34.Value = 1 Then 'First Page
MsgBox "Hi"
End If
End Sub

但我还想检查是否选择了第二个选项卡以及表单上的字段(名称)是否为 NULL(不在选项卡上)、msgbox 或取消事件以要求在他们看到第二个选项卡之前输入名称.

当我加入时:

Private Sub TabCtl34_Change()
If Me.TabCtl34.Value = 1 AND [FORMS]![FORMNAME]![NAME] IS NULL Then 
MsgBox "Hi"
End If
End Sub

即使名称为空,它也会直接转到第二个选项卡。我该如何编写 vba 代码才能实现我想要的功能?

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 而不是将其假定为默认值 属性。)