【发布时间】:2015-09-17 19:58:07
【问题描述】:
我目前在通过 Access 中的 VBA 在表中添加新记录时遇到问题。 VBA 通过具有 2 个组合字段和 2 个日期字段的表单中的按钮使用。
Private Sub Schlussel_hinzufügen_Click()
On Error GoTo ErrHandler
Dim R As Recordset
Set R = CurrentDb.OpenRecordset("Schluesselhistorie")
R.AddNew
' Normally data is added to the record between these two
R.Close
Me.Requery
DoCmd.Close
Exit Sub
ErrHandler:
MsgBox "Couldn't save record!", vbCritical
End Sub
只要调用 R.AddNew,表的第一条记录就会使用组合和日期字段中的数据进行修改。当
R![SLH_Schluessel_ID] = Me.Kombinationsfeld13.Value
R![SLH_Kontakt_ID] = Me.Kombinationsfeld15.Value
R![SLH_Datum_Ausgabe] = Me.SLH_Datum_Ausgabe.Value
R![SLH_Datum_Rueckgabe_Soll] = Me.SLH_Datum_Rueckgabe_Soll.Value
R.Update
被调用。我有点恼火,因为我知道不应该发生前一个(第一行事件),并且当在第一行上方添加代码时,修改了第一行并添加了具有这些值的新记录。
表是外部链接的,字段名称是德语。
是否存在对 DAO 的限制,其中使用的 Recordset 无法指定 Addnew 应该使用哪一行。或者 Addnew 是否采用 Form 的值自动将 Values 添加到表中?
【问题讨论】:
-
您的“第一行事件”是什么/在哪里?
-
如果您使用的是绑定表单,那么我猜当您更改第一条记录时,它当然会更改表中的相应记录,无论您如何编写 VBA。
标签: forms ms-access vba ms-access-2013