【发布时间】:2016-07-26 23:46:20
【问题描述】:
我在 Access 2010 中有一个数据库,其中第一个字段是唯一的会员编号。该字段设置为索引,没有重复。如果在输入表单上输入了重复项,则不会显示错误消息,并且在输入唯一编号之前没有其他操作。我需要在数字字段失去焦点时捕获错误的代码,以便消息框告诉用户问题,然后将焦点设置回数字字段或让用户取消所有输入。 这就是我所拥有的,它会导致数据类型错误
Private Sub Grumpy_No_BeforeUpdate(Cancel As Integer)
If DLookup(Str("[Grumpy_No]"), "Grumpy", Str("[Grumpy_No]") = Me!Str(Grumpy_No)) Then
MsgBox "Number has already been entered in the database."
Cancel = True
Me!Grumpy_No.Undo
End If
End Sub
非常感谢任何关于我哪里出错的线索
【问题讨论】:
-
听起来你要的是TextBox.BeforeUpdate Event
-
很抱歉,我对 Access 很陌生。我可以看到您对 BeforeUpdate 事件是正确的,但它似乎只想使用字符字段而不是整数。我尝试了 STR() 函数,但不断收到数据类型错误。我应该解释一下我的俱乐部是一个名为“Grumpy Old Bastards”的摩托车俱乐部,桌子是“Grumpy”,字段是“Grumpy_No”,它是一个整数。
-
这就是我所拥有的:- Private Sub Grumpy_No_BeforeUpdate(Cancel As Integer) If DLookup(Str("[Grumpy_No]"), "Grumpy", Str("[Grumpy_No]") = Me! Str(Grumpy_No)) Then MsgBox "号码已经输入数据库。" Cancel = True Me!Grumpy_No.Undo End If End Sub 任何关于我哪里出错的线索将不胜感激。
标签: ms-access vba ms-access-2010