Recordset Addnew修改表中的第一条记录

时间:2015-09-16 08:19:57

标签: forms vba ms-access access-vba ms-access-2013

我目前在通过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是否将表单的值自动添加到表中?

1 个答案:

答案 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