Access 2016代码正在插入重复记录

时间:2018-11-28 05:42:50

标签: ms-access

我是在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.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

但是每条记录都被双重保存,即我得到了两条相同的记录。 有人可以在代码中找到我的问题吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是绑定表格,则根本不需要保存按钮。关闭表单,重新查询等时,Access会为您节省费用。

因为您也要手动保存,所以记录要保存两次。

如果仍然要有一个保存按钮(例如,如果要在保存后移至新记录),则只需要以下代码即可保存当前记录:

Me.Dirty = False

或者,您可以使用DoCmd语句:

DoCmd.RunCommand acCmdSaveRecord