我目前在通过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
虽然打电话给。我有点恼火,因为前者(第一行事件)不应该像我所知的那样发生,当上面添加代码时,第一行都被修改,并且添加了带有这些值的新记录。
该表是外部链接的,字段名称是德语。
对于使用Recordset的DAO是否存在限制,无法指定Addnew应使用哪一行。或者Addnew是否将表单的值自动添加到表中?
答案 0 :(得分:0)
您应该使用以下形式的记录集克隆:
Private Sub Schlussel_hinzufügen_Click()
On Error GoTo ErrHandler
Dim R As DAO.Recordset
Set R = Me.RecordsetClone
R.AddNew
' Normally data is added to the record between these two
R.UpDate
R.Close
Exit Sub
ErrHandler:
MsgBox "Couldn't save record!", vbCritical
End Sub