Sorry about the timeliness of your response, I've been travelling and have not been able to get online often.
The ONLY thing you need to do to show your records on the subform is to set the Recordset in the CURRENT event of your MAIN form. You don't need to do anything in the Subform in order to show those records. I would strongly suggest you get this working first, then worry with other things.
It's pretty straight forward - whenever your mainform record changes, you need to change the recordset of your subform. The mainform's Current event is the best way to do this. You can use the Open event of the mainform to set the "main" recordset, but you then must also use the Current event to set the subform's recordset.
Just curious: Why does your work require you to use a recordset when working with Access data (assuming, that is, you're working with Access data).
So in the CURRENT event of your MAIN FORM, AFTER setting the Recordset of your Main form:
Dim rstSF As ADODB.Recordset
Dim strSQL As String
Set rstSF = New ADODB.Recordset
'/// Added
strSQL = "SELECT D_ErrorsTbl.error_id, D_ErrorsTbl.error_code, " & _
"D_ErrorsTbl.error_description, D_ErrorsTbl.audit_id " & _
"FROM D_ErrorsTbl " & _
"WHERE (((D_ErrorsTbl.audit_id)= " & Nz(Me.txtauditid_main, 1) & "))"
rstSF.CursorLocation = adUseClient 'Enable's form to be editable.
rstSF.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
Set Me.NameOfYOurSubformCONTROL.Form.Recordset = rstSF
Also, there is no reason to set the ControlSource in code; you can just set those items in Design view, assuming they don't change. However, if you must do this in code for some unknown reason, you can do this from the MAIN FORM:
Me.NameOfYourSubformControl.Form.txterror_id.ControlSource = "error_id"
Me.NameOfYourSubformControl.Form.txterror_description.ControlSource = "error_description"
Me.NameOfYourSubformControl.Form.cboerror_code.ControlSource = "error_code"
NameOfYourSubformControl is the name of the CONTROL on your mainform, and may or may not be named the same as the form you're using as a Subform.