验证文本框中的答案
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
如果用户在消息框中点击No,Cancel会变成True意味着更新被中止并且焦点保留在该文本框中。
如果用户点击是(确认值 > 25 在这种情况下是正确的),取消 将是 False,允许继续更新并将焦点移动到下一个控件。
我正在 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
如果用户在消息框中点击No,Cancel会变成True意味着更新被中止并且焦点保留在该文本框中。
如果用户点击是(确认值 > 25 在这种情况下是正确的),取消 将是 False,允许继续更新并将焦点移动到下一个控件。