Ms access 单击Microsoft Access中的按钮,将新记录添加到表中

Ms access 单击Microsoft Access中的按钮,将新记录添加到表中,ms-access,vba,recordset,Ms Access,Vba,Recordset,在我的MS Access表单中,我想实现一个单独的按钮,它向表中添加一条新记录。为此,我添加了一个按钮,并在此按钮上附加了一个事件: Private Sub btnAddRec_Click() Refresh With CodeContextObject On Error Resume Next DoCmd.GoToRecord , , acNewRec If Err.Number <> 0 Then btnAddRec.Enabled

在我的MS Access表单中,我想实现一个单独的按钮,它向表中添加一条新记录。为此,我添加了一个按钮,并在此按钮上附加了一个事件:

Private Sub btnAddRec_Click()
    Refresh
    With CodeContextObject
    On Error Resume Next
    DoCmd.GoToRecord , , acNewRec
    If Err.Number <> 0 Then
    btnAddRec.Enabled = False
    End If
    End With
End Sub
Private Sub btnAddRec_Click()
刷新
使用CodeContextObject
出错时继续下一步
文件编号:GoToRecord,acNewRec
如果错误号为0,则
btnAddRec.Enabled=False
如果结束
以
端接头
只要打开窗口并单击
btnAddRec
按钮,一切都正常,问题在于首先在现有记录中执行导航,然后单击此按钮。我收到运行时错误:2105:«无法转到指定的记录。您可能在记录集的末尾»


如何解决这个问题,我需要能够在单击特定按钮时添加新记录,不管我以前是否浏览过这些记录。

我创建了一个带有字段调用描述(和自动编号)的简单表单,并创建了一个带有单击事件后代码的按钮。我在里面填了很多记录并浏览了一遍,然后点击了addNewRec按钮。表单导航到新记录时没有出现问题。在成功打开表单后,我还可以直接单击addNewRec按钮

Private Sub btnAddRec_Click()
On Error GoTo Err1
  DoCmd.GoToRecord , , acNewRec
  Exit Sub
Err1:
  Description.SetFocus
  btnAddRec.Enabled = False
  MsgBox (Err.Description)

End Sub

与包含的代码不同的是,删除了refresh和With语句,处理了错误,在禁用按钮之前设置了焦点,并向用户显示了错误描述。我不知道你的表格是否相似,但如果相似,这应该适用于你,并且我正确理解了你的问题

什么是CodeContextObject?我尝试了你的代码,发现你试图打开表单,向前走一些记录,然后单击add按钮,我得到了错误。这非常简单,这段代码对我来说很好。如果您正在表单中显示所有代码,那么这应该是可行的。也许你应该重新开始。重新创建表单,这次添加addNewRec按钮时,从命令按钮向导中选择“记录操作”和“添加新记录”。