我是在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
但是每条记录都被双重保存,即我得到了两条相同的记录。 有人可以在代码中找到我的问题吗?
答案 0 :(得分:2)
如果您使用的是绑定表格,则根本不需要保存按钮。关闭表单,重新查询等时,Access会为您节省费用。
因为您也要手动保存,所以记录要保存两次。
如果仍然要有一个保存按钮(例如,如果要在保存后移至新记录),则只需要以下代码即可保存当前记录:
Me.Dirty = False
或者,您可以使用DoCmd
语句:
DoCmd.RunCommand acCmdSaveRecord