"Does On Error Resume Next have any disadvantages with regards to system resources."

I use it, and also On Error Goto. In some cases it takes a lot less code to let the error happen, trap it and react, as opposed to testing-testing-testing your way around it. Error handling is a regular part of Access, it shouldn't bog things down any more than the other parts. In fact, there is even a .Raise method where you can generate your own user-defined error.

EG If you want to know if a form is loaded, there's code floating around to call the Windows API and look for the window title, etc etc. You can instead do this:

Function IsLoaded(theform) As Boolean
    Dim frm As Form
    On Error Goto err_IsLoaded
    Set frm = Forms(theform)
    IsLoaded = True
exit_IsLoaded:
    Set frm = Nothing
    Exit Function
    '
err_IsLoaded:
    IsLoaded = False
    Resume exit_IsLoaded
'
End Function