vba - 如何检查用户在文本框中输入的值是否为 double 字?

标签 vba ms-access

我正在尝试检查用户是否在文本框中输入了一个数字值,是否接受了小数位。非常感谢任何帮助。

Private Sub textbox1_AfterUpdate()
If IsNumeric(textbox1.Value) = False Then
Me!textbox1.Undo
    MsgBox "only numbers are allowed"
Exit Sub
End If
Exit Sub

使用 BeforeUpdate 事件:

Private Sub textbox1_BeforeUpdate(Cancel As Integer)
If IsNumeric(textbox1.Value) = False Then
    MsgBox "only numbers are allowed"
Me!textbox1.Undo
Cancel = True
Exit Sub
End If
Exit Sub

我当前的代码根本不执行。我也在 textbox1_BeforeUpdate 事件中尝试过。请查看代码。

新代码:

Public Function IsValidKeyAscii(ByVal keyAscii As Integer, ByVal value As 
String) As Boolean
IsValidKeyAscii = (keyAscii = vbKeyDot And InStr(1, value, Chr$(vbKeyDot)) = 
0) Or (keyAscii >= vbKey0 And keyAscii <= vbKey9)
End Function

Private Sub textbox1_KeyDown(KeyCode As Integer, Shift As Integer)
If Not IsValidKeyAscii(KeyCode, textbox1.value) Then KeyCode = 0

End Sub

最佳答案

您根本不应该为这项任务使用 VBA。

只需将字段格式属性设置为通用编号。这是确保用户只能在字段中输入数字的内置方法。

关于vba - 如何检查用户在文本框中输入的值是否为 double 字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54539560/

相关文章:

vba - VBA 中的作用域是否被破坏?

ms-access - 从当前数据库的表中选择一个值并在 Access VBA 中使用变量

database - 在体育数据库中设计时间表

c# - 用空格替换 ":"符号(冒号)

ms-access - 如何使用VBA循环删除多个表中的所有记录? Access 2010

ms-access - 如何在 MS Access 中重载 Form_MouseWheel()?

python - 500 多个单元格引用和 120 个工作簿

工作表未找到 Excel VBA 宏,#NAME

vba - Excel VBA - WorkbookBeforeSave 事件执行

ms-access - 列表框多值选择