It appears to me that a Quote, a Sales Order, and an Invoice, whilst sharing
much of the same information, are actually distinct entities. From what I can
gather, you are trying to turn a quote into a sales order into an invoice. I
cannot see an actual relationship between quotes -> order -> invoice. Ok, in
the physical world one "usually" follows the other, but that is not always
the case.
For the tables, I would have the Quote -> Quote Details relationship, and
the same design for sales orders and invoices. If you wanted to track which
quotes were succesful I would add a field to the Sales Order table as a
foreign key to the Quote table primary key. The same goes for invoices ->
sales orders.
From what I can tell, you are trying to reduce the legwork in producing a
sales order by using the data already given in the quote. You need the data
in the quote to remain unchanged (the same goes for invoices). To achieve
this, I would use an APPEND query to select the necessary data from the Quote
and Quote Details table, and append them to the Sales and Sales Details
table. This would have to be done programatically (VBA), to ensure all the
relationships are handled properly.
By doing it this way, the users will be able to add new details, remove
those details that aren't relevant, change the prices as necessary (without
chnaging the prices i nthe quote), etc etc.
Am I anywhere near what you are after? If so, I'll give you more details
about the table design and code needed.
Dave