I tried your latest database - and I must advise that I am not familiar with the business process(es) involved.
I opened the Customers form, selected B in left column, clicked Charlie Brown, then the View Previous Orders button.
At that point I got an error. Reviewed the code and saw a spelling mistake.
Code:
Private Sub btnDtl_Click()
If CurrentProject.AllForms("frmOrders").IsLoaded = True Then
DoCmd.Close acForm, "frmOrders"
End If
DoCmd.OpenForm "frmOrders", , , , , , Me.CustID
DoCmd.OpenForm "frmOrders", , , "fkCustID = " & Me.CustID
Dim vID
On Error GoTo err
'vID = Me.frmCustomerOderTotals.Form.OrderID 'spelling error ORDER
vID = Me.frmCustomerOrderTotals.Form.OrderID 'corrected --removes the error
OpenOrder vID
err:
End Sub
To me your forms are quite busy --that's just a personal observation. Only you and your users can determine what is acceptable.
It appears that your logic may be changing as new "features" are considered. It may be counter intuitive, but building a flow chart of each process involved, and creating some test data and sample scenarios and testing each may save you considerable development time. It is much easier/efficient to correct the process logic/flow on a model, than creating code and trying to adjust that code to accommodate changes/corrections/refinements in physical code.
You know your operation better than any reader, and you know what your forms and buttons are intended to do better than the readers. My feeling is that you need some test scenarios in which you identify the inputs and the expected outputs. Run these scenarios against your latest database with some selected users. Identify what you observe vs what you expected and resolve/reconcile the differences. Make a list of things-- don't attempt to solve with code/physical database 1 small fix at a time. Make sure that the business logic/process is well understood (this often gets refined as you experience more and more detail). See my stump the model pitch here.
Good luck with your project.