Search code examples
ms-access

"Add Record" gives "Can't go to specified record" after first use Access


I have a command button in a form that allows users to add a new record. The command only works the first time you click it after the form is opened. I can navigate through the records without any errors and the first time you add a record after the form is opened will not give errors. Once you try to add a second record, the "Can't go to the specified record" error message is displayed.

I can make edits in the query without a problem and I can edit things without a problem. If I close out of the form and reopen it I can add a new record without issues. Anyone have ideas?

Using VBA, it's the standard add-new code, nothing else. Posted all the code for this form below. Some of the command buttons listed are in macros, don't know if that makes a difference.

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

Solution

  • My first thought is that your record isn't saving before you try to go to a new record so try this and see if it fixes the issue.

    Private Sub add_Click()
    
        If Me.Dirty Then
            Me.Dirty = False
        End If
    
      DoCmd.GoToRecord , , acNewRec
    
    End Sub