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