Ms access Access 2016代码正在插入重复记录
我对在访问表单后面写代码是个新手。 我在“新建”按钮后面写了以下代码:Ms access Access 2016代码正在插入重复记录,ms-access,Ms Access,我对在访问表单后面写代码是个新手。 我在“新建”按钮后面写了以下代码: Dim db As DAO.Database Dim rst As DAO.Recordset Dim MyDate As Date Set db = CurrentDb Set rst = db.OpenRecordset("SELECT * FROM STOCK_IN ORDER BY RecNo;", dbOpenDynaset) If rst.BOF And rst.EOF Then Else rst.Mo
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim MyDate As Date
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT * FROM STOCK_IN ORDER BY RecNo;", dbOpenDynaset)
If rst.BOF And rst.EOF Then
Else
rst.MoveLast
MyDate = rst!TDate
End If
DoCmd.GoToRecord , , acNewRec
[TDate] = MyDate
Set rst = Nothing
AdFlag = True
以及“保存”按钮后面的以下代码:
If AdFlag = True Then
Dim db1 As DAO.Database
Dim rst1 As DAO.Recordset
Set db1 = CurrentDb
Set rst1 = db1.OpenRecordset("SELECT * FROM STOCK_IN ORDER BY RecNo;",
dbOpenDynaset)
With rst1
.AddNew
![TDate] = TDate
![IName] = IName
![StockIn] = StockIn
.Update
.Close
End With
Set rst1 = Nothing
Me.Requery
AdFlag = False
End If
但是每一条记录都被双重保存,也就是说,我得到了两条相同的记录。
有人能在代码中找到问题吗?如果您使用的是绑定表单,则根本不需要“保存”按钮。Access在关闭表单、重新查询等时为您保存句柄 因为您也在手动保存,所以您保存记录两次 如果仍要使用“保存”按钮(例如,如果要在保存后移动到新记录),则只需以下代码即可保存当前记录:
Me.Dirty = False
或者,您可以使用DoCmd
语句:
DoCmd.RunCommand acCmdSaveRecord
如果您使用的是绑定表单,则根本不需要“保存”按钮。Access在关闭表单、重新查询等时为您保存句柄 因为您也在手动保存,所以您保存记录两次 如果仍要使用“保存”按钮(例如,如果要在保存后移动到新记录),则只需以下代码即可保存当前记录:
Me.Dirty = False
或者,您可以使用DoCmd
语句:
DoCmd.RunCommand acCmdSaveRecord
比你埃里克·冯·阿斯茅斯还厉害。我还有很长的路要走,比你埃里克·冯·阿斯茅斯还远。我还有很长的路要走。