【发布时间】:2018-11-15 21:18:32
【问题描述】:
我有代码可以执行某些操作,然后您在文本字段中按 Enter,问题是当您使用 Ctrl+Enter 时,我可以捕获该事件,但访问在下一行告诉我该字段显然为 NULL
Private Sub Text5_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Or KeyAscii = 10 Then
If Len(Me.Text5) = 0 Then Exit Sub
If Val(Right(Me.Text5, 1)) > 2 Then Me.Text5 = Left(Me.Text5, Len(Me.Text5) - 1) & "0"
所以“Len”工作正常,但“Right”函数给出“无效使用 null”,当我点击调试并检查其值为 NULL 时
我想不通
我想我需要删除换行符,但是当文本框为 null 并且字符串的每个函数都吐出该错误时该怎么做
【问题讨论】:
-
一种方法是添加另一张支票
If IsNull(Me.Text5) Then Exit Sub。 -
那么问题是,一旦你按下 enter,文本字段的长度就不再是 0,所以即使它是 null,它也会通过你的 null 检查?
-
我按回车键,一切都很好,但是当我按回车键+ctrl(据说是 KeyAscii = 10)时,即使我的文本框中有文本,它也说 Me.Text5 为空跨度>
-
在第一行放一个断点。当您遇到断点时,在即时窗口中键入
?Len(Me.Text5)。它返回什么? -
好吧,我错了一点,但是,为什么当我按下 Ctrl+enter 时,包含实际文本的文本字段显示为 NULL,但只需输入即可正常工作