我是VBA的第一次编码员,我正在为我工作的心理实验室创建一个数据输入数据库。目前已创建数据库,但我想防止将重复条目放入数据库(即通过在输入后立即查找参与者号码)。我一直试图修复这段代码已经有一段时间了,我刚刚碰壁了。当我输入参与者号码时,它会显示正确的错误消息,但是它表示已经输入了每个号码(即使它们实际上没有输入)。这是代码:
Private Sub Participant_Number_BeforeUpdate(Cancel As Integer)
Dim Participant_Number As Integer
Dim StLinkCriteria As Integer
If (Not IsNull(DLookup("[Participant_Number]", "Entry Log", "[Participant_Number] ='" & Me.Participant_Number.Value & "'"))) Then
MsgBox "Participant Number has already been entered in the database."
Cancel = True
Me.Participant_Number.Undo
End If
End Sub
非常感谢任何帮助。我之前从未使用过VBA,而且我自学了如何编码。
答案 0 :(得分:1)
我猜你的Participant_Number
字段是number
。您不应将标准用单引号'
括起来,这些标准用于text
类型的字段。尝试更改
"[Participant_Number] ='" & Me.Participant_Number.Value & "'"))) Then
到
"[Participant_Number] = " & Me.Participant_Number.Value))) Then
答案 1 :(得分:0)
如果您尚未使用VBA,可以尝试通过在“设计”视图中打开表格来执行此操作。这种方法简单易行,是一个不错的选择。您可以在这里查看:https://support.office.com/en-us/article/Prevent-duplicate-values-in-a-field-b5eaace7-6161-4edc-bb90-39d1a1bc5576?ui=en-US&rs=en-US&ad=US&fromAR=1