Ms access 为什么我的DLOOKUP只返回部分正确的记录?

Ms access 为什么我的DLOOKUP只返回部分正确的记录?,ms-access,vba,filtered-lookup,Ms Access,Vba,Filtered Lookup,好的。这是我的第一篇帖子,所以我会尽量详细。我在一个名为frm_Contact_Info的表单上有一个Person_AfterUpdate事件,该事件用于检查一个名为tbl_Contact_Info的表中的现有记录。如果该记录存在,则会弹出一条消息,说明该记录已存在,并检查名称。然后它会询问我是否正在使用现有名称创建一个新记录,或者返回的记录是否是同一个人。我遇到的问题是,DLookup显示了正确的姓名,但没有将正确的电话号码或地址返回到我的表单中 这是我的密码。我并不擅长编程,但我尽可能让人理

好的。这是我的第一篇帖子,所以我会尽量详细。我在一个名为frm_Contact_Info的表单上有一个Person_AfterUpdate事件,该事件用于检查一个名为tbl_Contact_Info的表中的现有记录。如果该记录存在,则会弹出一条消息,说明该记录已存在,并检查名称。然后它会询问我是否正在使用现有名称创建一个新记录,或者返回的记录是否是同一个人。我遇到的问题是,DLookup显示了正确的姓名,但没有将正确的电话号码或地址返回到我的表单中

这是我的密码。我并不擅长编程,但我尽可能让人理解。如果你想要屏幕截图,请告诉我。这是我第一次真正尝试建立一个数据库,我知道我的技能不如你的一些。我已经尽可能多地研究以找到答案,但迄今为止我所做的一切都让我回到了这个问题,即DLOOKUP返回的是正确的新人,而不是正确的电话号码或电子邮件地址。请帮忙

Private Sub Person_AfterUpdate()

Dim NewPerson As String
Dim stLinkCriteria As String
Dim PersID As Integer

On Error GoTo E:

NewPerson = Me.Person.Value
stLinkCriteria = "[Person] = " & "'" & NewPerson & "'"

If Me.Person = DLookup("[Person]", "tbl_Contact_Info", stLinkCriteria) Then
    MsgBox "The name, " & NewPerson & ", has already been added to the database." _
    & vbCr & vbCr & "Please check the name and try again.", vbInformation, "Duplicate Information"
    Me.Undo
End If

PersID = DLookup("[ID]", "tbl_Contact_Info", stLinkCriteria)
Me.DataEntry = False
DoCmd.FindRecord PersID, , , , , acCurrent

Response = MsgBox("Are you adding a new record with the same name?", vbYesNo, "New or Existing Record")

If Response = vbYes Then
    DoCmd.GoToRecord , "", acNewRec, 1
    Me!Person.Value = NewPerson
Else
    Me.DataEntry = True
    DoCmd.GoToRecord , "", acNewRec, 1

End If
Exit Sub

E:
Me!Person.Value = NewPerson
End Sub`

可能在用作查找值的属性中有多条记录具有相同的值?

我假设您使用的是相同的条件stLinkCriteria,并且您是否尝试过进行常规查询?从联系人信息中选择*,其中Person='aperson';查看同一个人是否在表中出现更多次,以及数据是否正确。我没有尝试常规查询,但我可以告诉您,同一个人有多个条目。这个想法是要有一个联系人列表,我可以有多个相同的名字。请原谅我在这件事上的无知,因为我对这种类型的编码仍然是新手,但是我在这个查询中应该在哪里输入;或者@agold我按照指示执行了操作,但是查询没有返回任何结果,即使我确保表中有一个名称的倍数。我试图从Response=down到Exit Sub注释掉IF、Then、Else语句。当我以这种方式运行代码时,表单填充的是正确的名称,而不是记录中正确的电话号码或电子邮件地址。它似乎已准备好附加记录,而不是添加新记录。您是否也可以显示您在问题中检索电话号码和电子邮件的部分?和您尝试的查询。我确实有同一个人的多个条目。这应该是我的想法,因为我正试图建立一个联系人列表。