【问题标题】:Microsoft access VBA MsgBox not responding, what am I doing wrong?微软访问 VBA MsgBox 没有响应,我做错了什么?
【发布时间】:2018-02-01 22:00:24
【问题描述】:

所以我整理了一份资产检查表。有一个签出按钮,如果用户 ID 字段留空,我希望在单击时提示“需要用户 ID”的消息。但是,我当前的代码并非如此,无论如何它只接受按钮单击。我在这里错过了什么吗? (代码如下)

Private Sub CHECK_OUT_BUTTON_Click()
    If (IsNull(Me.USER_ID)) Then
        MsgBox "User ID is required."
    Else
        If Me.Status.Value = "Checked Out" Then
           MsgBox "This device is currently in use."
        Else
            If (Me.Status.Value = "Available") And (Not IsNull(Me.USER_ID)) Then
                Me.Status.Value = "Checked Out"
                RunCommand acCmdSaveRecord
                Me.Requery
            End If
        End If
    End If
End Sub

【问题讨论】:

  • 如果将If 条件的第一行从If(IsNull(Me.USER_ID)) Then 更改为If(IsNull(Me.USER_ID) or Me.USER_ID = "") Then 是否有效?
  • 如果你在 IF 语句上放一个断点并将鼠标悬停在Me.USER_ID 上,你就可以看到她发生了什么。你会看到它是一个空字符串,而不是 null。

标签: forms ms-access vba checkout msgbox


【解决方案1】:

看起来用户 ID 字段没有注册为 NULL,而是一个空字符串。

换行:

If(IsNull(Me.USER_ID)) Then

收件人:

If(Nz(Me!USER_ID.Value) = "") Then

应该捕获空的用户 ID

【讨论】:

  • Nz 比较方便:If Nz(Me!USER_ID.Value) = "" Then
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2013-02-23
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多