Ms access &引用;添加记录";给予;Can';t转到指定的记录“;首次使用后访问

Ms access &引用;添加记录";给予;Can';t转到指定的记录“;首次使用后访问,ms-access,Ms Access,我有一个表单中的命令按钮,允许用户添加新记录。该命令仅在窗体打开后第一次单击时有效。我可以在记录中导航,不会出现任何错误,并且在表单打开后第一次添加记录时不会出现错误。尝试添加第二条记录后,将显示“无法转到指定记录”错误消息 我可以在查询中毫无问题地进行编辑,也可以毫无问题地编辑内容。如果我关闭表单并重新打开它,我可以添加一个新记录而不会出现问题。有人有想法吗 使用VBA,这是标准的添加新代码,没有别的。在下面发布了此表单的所有代码。列出的一些命令按钮在宏中,不知道这是否有区别 Private

我有一个表单中的命令按钮,允许用户添加新记录。该命令仅在窗体打开后第一次单击时有效。我可以在记录中导航,不会出现任何错误,并且在表单打开后第一次添加记录时不会出现错误。尝试添加第二条记录后,将显示“无法转到指定记录”错误消息

我可以在查询中毫无问题地进行编辑,也可以毫无问题地编辑内容。如果我关闭表单并重新打开它,我可以添加一个新记录而不会出现问题。有人有想法吗

使用VBA,这是标准的添加新代码,没有别的。在下面发布了此表单的所有代码。列出的一些命令按钮在宏中,不知道这是否有区别

Private Sub add_Click()
  DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub edit_info_Click()
    Date_of_Echo.Locked = False
    ID.Locked = False
    AoV.Locked = False
    AI.Locked = False
    MR.Locked = False
    TR.Locked = False
    TR_velocity.Locked = False
    PA_pressures.Locked = False
    LVeDD.Locked = False
    LVeSD.Locked = False
    RV_function.Locked = False
    comments.Locked = False
    Me.next.Visible = False
    Me.previous.Visible = False
    Me.first.Visible = False
    Me.last.Visible = False
    Me.add.Visible = False
    Me.save.Visible = True
    Me.save.SetFocus
    Me.edit_info.Visible = False

End Sub

Private Sub Form_Current()
   If Me.NewRecord Then
    Me.recordcounter.Caption = "New Record"
    Me.next.Visible = False
    Me.previous.Visible = False
    Me.first.Visible = False
    Me.last.Visible = False
    Me.add.Visible = False
    Me.edit_info.Visible = False
    Me.save.Visible = True
    Date_of_Echo.Locked = False
    ID.Locked = False
    AoV.Locked = False
    AI.Locked = False
    MR.Locked = False
    TR.Locked = False
    TR_velocity.Locked = False
    PA_pressures.Locked = False
    LVeDD.Locked = False
    LVeSD.Locked = False
    RV_function.Locked = False
    comments.Locked = False
   Else
    Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount
    Me.next.Visible = True
    Me.previous.Visible = True
    Me.first.Visible = True
    Me.last.Visible = True
    Me.add.Visible = True
    Me.edit_info.Visible = True
    Me.save.Visible = False
    End If
 End Sub
Private Sub save_Click()
DoCmd.save
    Me.previous.Visible = True
    Me.first.Visible = True
    Me.last.Visible = True
    Me.next.Visible = True
    Me.add.Visible = True
    Me.edit_info.Visible = True
    Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount
    Me.add.SetFocus
    Me.save.Visible = False
    Date_of_Echo.Locked = True
    ID.Locked = True
    AoV.Locked = True
    AI.Locked = True
    MR.Locked = True
    TR.Locked = True
    TR_velocity.Locked = True
    PA_pressures.Locked = True
    LVeDD.Locked = True
    LVeSD.Locked = True
    RV_function.Locked = True
    comments.Locked = True

End Sub
Private Sub next_Click()
    On Error GoTo Err_cmdLastRecord_Click

    Me.AllowAdditions = False
    DoCmd.GoToRecord , , acNext

Exit_cmdLastRecord_Click:
    Exit Sub

Err_cmdLastRecord_Click:
    MsgBox " There are no more records ", vbExclamation, ""
    Resume Exit_cmdLastRecord_Click

End Sub

我的第一个想法是,在您尝试转到新记录之前,您的记录没有保存,因此请尝试此操作,看看它是否解决了问题

Private Sub add_Click()

    If Me.Dirty Then
        Me.Dirty = False
    End If

  DoCmd.GoToRecord , , acNewRec

End Sub

我的第一个想法是,在您尝试转到新记录之前,您的记录没有保存,因此请尝试此操作,看看它是否解决了问题

Private Sub add_Click()

    If Me.Dirty Then
        Me.Dirty = False
    End If

  DoCmd.GoToRecord , , acNewRec

End Sub

我的第一个想法是,在您尝试转到新记录之前,您的记录没有保存,因此请尝试此操作,看看它是否解决了问题

Private Sub add_Click()

    If Me.Dirty Then
        Me.Dirty = False
    End If

  DoCmd.GoToRecord , , acNewRec

End Sub

我的第一个想法是,在您尝试转到新记录之前,您的记录没有保存,因此请尝试此操作,看看它是否解决了问题

Private Sub add_Click()

    If Me.Dirty Then
        Me.Dirty = False
    End If

  DoCmd.GoToRecord , , acNewRec

End Sub

关于同样的问题,我提到的另一件事是,您应该检查表单数据源查询。所有字段都可用吗?联接是否正确?
在我的例子中,我将索引联接从文本字段更改为数字字段,并且它也需要在表单数据源查询中进行更新。

我提到的另一个问题是,您应该检查表单数据源查询。所有字段都可用吗?联接是否正确?
在我的例子中,我将索引联接从文本字段更改为数字字段,并且它也需要在表单数据源查询中进行更新。

我提到的另一个问题是,您应该检查表单数据源查询。所有字段都可用吗?联接是否正确?
在我的例子中,我将索引联接从文本字段更改为数字字段,并且它也需要在表单数据源查询中进行更新。

我提到的另一个问题是,您应该检查表单数据源查询。所有字段都可用吗?联接是否正确?
在我的例子中,我将索引联接从文本字段更改为数字字段,并且它还需要在表单数据源查询中进行更新。

如果有人仍然存在此问题,我无法解释为什么会发生此问题,但这里有一个解决方法:

重置表单上的
AllowAdditionsProperty

Me.[form_name].Form.AllowAdditions = False
Me.[form_name].Form.AllowAdditions = True
这是一个非常奇怪的问题,因为我的代码已经运行了好几个星期了。我用的是这样的东西:

Me.frm.SetFocus
   DoCmd.GoToRecord , , acNewRec
     !Field1 = value1
     !Field2 = value2
它工作得很好,然后突然出现了“无法转到指定记录”错误,尽管我没有对代码进行任何更改。表单设置很好,我可以整天在基础表中添加记录。我甚至在即时窗口中检查了表单的
allowaditions
属性,结果显示它被设置为
True
。但我尝试了这项工作,它成功了


现在,我在
Docmd.GoToNewRoecord
acNewRecord
的每个实例之后添加这两行代码,它就开始工作了。

如果有人仍然有这个问题,我无法解释为什么会发生,但这里有一个解决方法:

重置表单上的
AllowAdditionsProperty

Me.[form_name].Form.AllowAdditions = False
Me.[form_name].Form.AllowAdditions = True
这是一个非常奇怪的问题,因为我的代码已经运行了好几个星期了。我用的是这样的东西:

Me.frm.SetFocus
   DoCmd.GoToRecord , , acNewRec
     !Field1 = value1
     !Field2 = value2
它工作得很好,然后突然出现了“无法转到指定记录”错误,尽管我没有对代码进行任何更改。表单设置很好,我可以整天在基础表中添加记录。我甚至在即时窗口中检查了表单的
allowaditions
属性,结果显示它被设置为
True
。但我尝试了这项工作,它成功了


现在,我在
Docmd.GoToNewRoecord
acNewRecord
的每个实例之后添加这两行代码,它就开始工作了。

如果有人仍然有这个问题,我无法解释为什么会发生,但这里有一个解决方法:

重置表单上的
AllowAdditionsProperty

Me.[form_name].Form.AllowAdditions = False
Me.[form_name].Form.AllowAdditions = True
这是一个非常奇怪的问题,因为我的代码已经运行了好几个星期了。我用的是这样的东西:

Me.frm.SetFocus
   DoCmd.GoToRecord , , acNewRec
     !Field1 = value1
     !Field2 = value2
它工作得很好,然后突然出现了“无法转到指定记录”错误,尽管我没有对代码进行任何更改。表单设置很好,我可以整天在基础表中添加记录。我甚至在即时窗口中检查了表单的
allowaditions
属性,结果显示它被设置为
True
。但我尝试了这项工作,它成功了


现在,我在
Docmd.GoToNewRoecord
acNewRecord
的每个实例之后添加这两行代码,它就开始工作了。

如果有人仍然有这个问题,我无法解释为什么会发生,但这里有一个解决方法:

重置表单上的
AllowAdditionsProperty

Me.[form_name].Form.AllowAdditions = False
Me.[form_name].Form.AllowAdditions = True
这是一个非常奇怪的问题,因为我的代码已经运行了好几个星期了。我用的是这样的东西:

Me.frm.SetFocus
   DoCmd.GoToRecord , , acNewRec
     !Field1 = value1
     !Field2 = value2
它工作得很好,然后突然出现了“无法转到指定记录”错误,尽管我没有对代码进行任何更改。表单设置很好,我可以整天在基础表中添加记录。我甚至在即时窗口中检查了表单的
allowaditions
属性,结果显示它被设置为
True
。但我尝试了这项工作,它成功了

现在我在
Docmd.GoToNewRoecord
acNewRecord
的每个实例后面添加这两行