Ms access 如果存在重复的文本框,则“撤消”不起作用

Ms access 如果存在重复的文本框,则“撤消”不起作用,ms-access,vba,ms-access-2010,ms-access-2007,ms-access-2016,Ms Access,Vba,Ms Access 2010,Ms Access 2007,Ms Access 2016,我有一个带有文本框和列表框的表单。我想在文本框中输入一条新记录,以填充表和列表框(列表框行源是表)。我已经编写了一个代码来防止表中出现重复条目。当有重复条目时,我会弹出一个窗口提醒用户。不起作用的是清除文本框的撤消选项。下面粘贴了代码和一些必需的信息。如果您对代码有任何帮助,我们将不胜感激 表名称:tblNewComponents 字段名称:NewComponents 文本框名称:TextCOMPONENTS 有人能帮我吗?谢谢 Private Sub TextCOMPONENTS_AfterU

我有一个带有文本框和列表框的表单。我想在文本框中输入一条新记录,以填充表和列表框(列表框行源是表)。我已经编写了一个代码来防止表中出现重复条目。当有重复条目时,我会弹出一个窗口提醒用户。不起作用的是清除文本框的撤消选项。下面粘贴了代码和一些必需的信息。如果您对代码有任何帮助,我们将不胜感激

表名称:
tblNewComponents

字段名称:
NewComponents

文本框名称:
TextCOMPONENTS

有人能帮我吗?谢谢

Private Sub TextCOMPONENTS_AfterUpdate()
Dim NewComponent As String
Dim stLinkCriteria As String
Dim custNo As Integer
'Assign the entered customer name to a variable NewCustomer
NewComponent = Me.TextCOMPONENTS.Value
stLinkCriteria = "[NewComponents] = " & "'" & NewComponent & "'"
If Me.TextCOMPONENTS = DLookup("[NewComponents]", "tblNewComponents",     stLinkCriteria) Then
MsgBox "This Component, " & NewComponent & ", has already been entered in    database." _
& vbCr & vbCr & "Please check the component name again.", vbInformation, "Duplicate information"
Me.Undo
end if
exit sub

只需执行此操作即可清除文本框(并将焦点设置到其中)


您的错误在事件行为中,而不是
Me.Undo
,您应该将其保留在下一个textbox gotfocus事件中,而不是在更新后的当前textbox中, 在下一个文本框中获取焦点事件,并将完美工作。
非常感谢SOF club

使用未绑定的文本框(这样数据不会自动保存),而不是保存重复记录并将其撤消,然后在更改后(或离开记录时),检查它是否存在,并在必要时进行保存。另外,Access的版本是什么?您可以列出三个。它本身就是一个未绑定的文本框。访问版本2007-2010
Me.TextCOMPONENTS.Value = Null
Me.TextCOMPONENTS.SetFocus