Vba 防止有条件的数据重复
我想在用于输入序列号的文本框上设置数据重复检查 如果在数据库中已找到输入的序列号,则在清除文本框中的值之前,应调用MsgBox提醒用户 但是,如果输入的序列号包含“RW”,则应禁用检查Vba 防止有条件的数据重复,vba,ms-access,Vba,Ms Access,我想在用于输入序列号的文本框上设置数据重复检查 如果在数据库中已找到输入的序列号,则在清除文本框中的值之前,应调用MsgBox提醒用户 但是,如果输入的序列号包含“RW”,则应禁用检查 Private Sub Serial_Number_AfterUpdate() Dim NewSerialNumber As String Dim stLinkCriteria As String NewSerialNumber = Me.Serial_Number.Value stLinkCriteria =
Private Sub Serial_Number_AfterUpdate()
Dim NewSerialNumber As String
Dim stLinkCriteria As String
NewSerialNumber = Me.Serial_Number.Value
stLinkCriteria = "[Serial_Number] = " & "'" & NewSerialNumber & "'"
If Me.Serial_Number = DLookup("[Serial_Number]", "Esagon_End", stLinkCriteria) Then
MsgBox "This serial number, " & NewSerialNumber & ", has already been entered into the database." _
& vbCr & vbCr & "Please check the serial number again.", vbI, "Duplicate information"
Me.Undo
End If
End Sub
如果VBA不能做到这一点,我愿意使用其他方法,如查询。谢谢。看看你问的问题,我想这就是你要找的。如果不是,请留下评论,我会尝试更新我的答案
Private Sub Serial_Number_AfterUpdate()
'If it doesn't contain "RW"
If InStr(Me.Serial_Number, "RW") = 0 Then
'If serial number not in the database
If DCount("*", "Esagon_End", "Serial_Number = '" & Me.Serial_Number & "'") > 0 Then
'Alert user and blank the text box
Call MsgBox("The serial number " & Me.Serial_Number & " is already in the database." _
& vbCrLf & vbCrLf & "Please check the serial number you are entering.", _
vbInformation, "Duplicate Serial")
Me.Serial_Number = ""
End If
End If
End Sub
“删除文本框中的序列号”和“数据复制将被禁用”在我看来是一样的。所以,试着重新表述这个问题。