Thanks for the reply - i've done a little digging and it turns out the runtime error occurs on all PCs, however when only access runtime is installed it comes up with the afore mentioned error and closes, whereas on my laptop with access 2013 I get the following:

The code itself isn't my own, it is an adapted version of some code I think "Its me" on here wrote me for closing my form containing a subform without saving any data. The code he wrote though after some more testing, allowed the data on the main form to be saved so I added in the docmd.runcommand acdeleterecord which seemed to work for a few weeks and now it is throwing this...
Any ideas?
I will attach the code for that button:
Code:
Private Sub Command40_Click()
If MsgBox("Do you wish to cancel?", vbYesNo, "Delete Confirmation") = vbYes Then
Dim db As DAO.Database
Dim rsMain As DAO.Recordset
Dim rsSub As DAO.Recordset
Dim lngLagoonID As Long
Dim lngSlurryID As Long
Set db = CurrentDb
Set rsMain = db.OpenRecordset("tbl_lagoon", dbOpenDynaset)
Set rsSub = db.OpenRecordset("tbl_spreading", dbOpenDynaset)
DoCmd.SetWarnings = False
If Me.Dirty = True Then
DoCmd.RunCommand acCmdDeleteRecord
End If
DoCmd.SetWarnings = True
If Not IsNull(Me.ID.Value) Then 'Just to avoid Errors let's make sure we are working with something
lngLagoonID = Me.ID.Value 'Get the PK for the record to be deleted
If Not IsNull(Me.subfrm.Form.Slurry_spread_ID) Then 'Check to see if a record exists
lngSlurryID = Me.subfrm.Form.Slurry_spread_ID 'Get the PK for the record to be deleted
End If 'IsNull(Me.subfrm.Form.Slurry_spread_ID)
rsMain.FindFirst "[ID] =" & lngLagoonID
If rsMain.NoMatch = False Then
rsMain.Delete
End If
rsSub.FindFirst "[Slurry_spread_ID] =" & lngSlurryID
If rsSub.NoMatch = False Then
rsSub.Delete
End If
End If 'IsNull(Me.ID.Value)
rsSub.Close
Set rsSub = Nothing
rsMain.Close
Set rsMain = Nothing
Set db = Nothing
End If
DoCmd.Close
End Sub