0

在我的 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

当您打开窗口并单击btnAddRec按钮时一切正常,问题是当您首先在现有记录中执行导航时,然后才单击此按钮。我得到了运行时错误:2105:«你不能去指定的记录。您可能处于记录集的末尾»

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

4

1 回答 1

1

我创建了一个带有字段调用描述(和自动编号)的简单表单,并创建了一个按钮,其中包含单击事件之后的代码。我用一些记录填充它并浏览它们,然后单击 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 语句、处理错误、在禁用按钮之前设置焦点并向用户显示错误描述。我不知道您的表格是否相似,但是如果是的话,这应该对您有用,并且我正确理解了您的问题。

于 2013-05-19T01:11:02.240 回答