验证文本框中的答案

Validating answer in textbox

我正在 Access 中构建一个表单,我试图在用户单击命令按钮时弹出一个消息框。我希望仅当用户输入的值高于 25 时才弹出该框。我尝试了一些不同的 VBA 代码,但无法弄清楚我做错了什么。

你应该能够用这样的东西做你正在寻找的东西:

Private Sub btnCommand_Click()
On Error GoTo Err_Handler

    If CInt(Nz(Me.Textbox1.Value, 0) > 25) Then
        MsgBox "Enter Message Here"
    End If

Exit_Handler:
    Exit Function

Err_Handler:
    If Err.Number = 13 Then
        MsgBox "You must enter a valid number!"
    Resume Exit_Handler
End Sub

建议您使用文本框的Before Update事件来确认其值>25是否有效。这意味着您可以立即捕获无效值,而不是等到稍后(直到命令按钮单击事件)才进行数据验证。

例如,如果您的文本框名为 MyTextBox,Null 是一个有效条目,非 Null 值将是数字 ...

Private Sub MyTextBox_BeforeUpdate(Cancel As Integer)
    Dim strPrompt As String

    strPrompt = "The value is > 25.  Is that correct?"
    If Not IsNull(Me.MyTextBox.Value) Then
        If Me.MyTextBox.Value > 25 Then
            Cancel = (MsgBox(strPrompt, vbYesNo) = vbNo)
        End If
    End If
End Sub

如果用户在消息框中点击NoCancel会变成True意味着更新被中止并且焦点保留在该文本框中。

如果用户点击(确认值 > 25 在这种情况下是正确的),取消 将是 False,允许继续更新并将焦点移动到下一个控件。