【发布时间】:2015-06-06 13:08:16
【问题描述】:
我有一个脚本会根据用户的姓氏和识别号自动检测用户是否存在。如果它存在于数据库中,表格将使用正确的数据自动完成,并在保存时更新。如果没有,则在用户输入其余数据并按下保存按钮后,将保存一条新记录。
我遇到的问题是,当脚本自动检测到数据库中确实存在用户时,它会将当前数据(作为姓氏和 ID 号)保存到表中,而将所有其他字段留空。
我的代码:
Private Sub Last_AfterUpdate()
Dim Check As Integer
Dim records As Recordset
Dim tmp As String
Dim tmp1 As String
Dim db As Database
Set db = CurrentDb
If Not IsNull(Me.ID) Then
tmp = Me.ID
End If
If Not IsNull(Me.Last) Then
tmp1 = Me.Last
End If
Set records = db.OpenRecordset("SELECT * from [EmailList] WHERE ID1= '" & tmp & "' AND " & "Last = '" & tmp1 & "'")
Me.Recordset.FindFirst "ID=" & records.Fields("ID")
End Sub
注意:字段 ID 和 ID1 之间存在差异。它们是我使用的两种身份识别形式。
【问题讨论】:
-
我觉得你的代码比这里的要多。你在哪里检查用户是否已经存在?您如何自动填写用户信息?目的是什么:
Set records = db.OpenRecordset("SELECT * from [EmailList] WHERE ID1= '" & tmp & "' AND " & "Last = '" & tmp1 & "'")? -
@Ryan-w4588 不是您的问题的答案,而只是一个提示:在此代码的末尾,您应该关闭已打开的记录集并从内存中删除记录集和数据库,所以,分别为:
records.close、Set records = Nothing,最后是Set db = Nothing。 -
@MattHall 我确实知道,我仍在教自己在每个脚本中记住它。谢谢!我将查看我所有的文件以确保我这样做了哈哈。我感谢建设性的批评!