在文本框中验证答案

时间:2015-03-02 16:51:58

标签: ms-access access-vba

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

2 个答案:

答案 0 :(得分:1)

我建议您使用文本框的更新前事件来确认其值> 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

如果用户在消息框中单击,则取消将变为 True ,这意味着更新将中止并且焦点仍然在文本框。

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

答案 1 :(得分:0)

你应该能够用这样的东西做你想要的事情:

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