I would not use a listbox. One was is to have two forms; frmOrderMain and frmOrderDtls (datasheet), which you link to a subform control on main. A control (combo?) on main header drives the display of records in the subform. This is done by requerying the sub form with the order# as criteria. Main has a textbox with a DCount function to get the sum of your dollar field (you do not store this total in a table) or any other aggregate function you need, such as line count, total item count, etc. If adding a record to the order details subform, you requery the sum textbox or refresh the entire form. However, I don't know if you want to add the line items via main form controls or directly in the subform, but either way, you have the ability to lock the subform so that direct editing is not possible if that's what you need. The only other thing I can think of at the moment that you'd need if you take this route is the syntax for requerying a subform: Forms("MainFormName").Controls("subformControlName ").Form.Requery (subformcontrolname is the name of the control that contains the subform, not the name of the subform itself).
Edit:
Also, to be able to click on a line item and open a new form to edit the line item(can list boxes have buttons in them?)
I say no. Anyway, if you use the above method, you don't need an editing form.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.