好的。这是我的第一篇文章,所以我会尽量详细说明。我在一个名为frm_Contact_Info的Form上有一个Person_AfterUpdate()事件,它应该检查一个名为" tbl_Contact_Info,"的表。对于现有记录。如果记录存在,则会弹出一条消息,指出记录已存在,并检查名称。然后它会询问我是否使用现有名称创建新记录,或者返回的记录是否是同一个人。我遇到的问题是DLookup显示正确的名称,但没有将正确的电话号码或地址返回到我的表单。
这是我的代码。我不擅长编程,但我尽量让它变得可以理解。如果你想要截屏,请告诉我。这是我第一次真正尝试建立数据库,而且我知道我的技能并不像你的一些人那么好。我尽可能多地尝试研究找到答案,但到目前为止我所做的一切都让我回到了这个问题,即DLOOKUP正在返回正确的NewPerson,但不是正确的手机号码或电子邮件地址。请帮忙!
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`
答案 0 :(得分:0)
也许您在用作查找值的属性中有多个具有相同值的记录?