GaryPanic,
I must disagree with you re duplicating customer information; there is no need for this.
If you want to do Invoicing then what you need is;
Customer Table
CustomerID (PK-AutoNumber)
Name
Address etc.
Invoice Table
InvoiceID (PK – AutoNumber),
fkCustomerID (Foreign Key – Number )
Date
Delivery Instructions
fkSalespersonID (you would need a table for employees)
InvoiceDetails
InvoiceDetailsID(PK AutoNumber)
fkInvoiceID (Foreign Key Number)
Quantity
Item Description (This should come from product table)
........Etc.
Relationships;
1 customer Many Invoices
1 Invoice Many InvoiceDetails
You would also setup relationships for the products and employees (if you use them)
When a new invoice is created the customer full details would show on the invoice form (and report) but only the customerID is recorded in the invoice table in the fkCustomerID field.
The would be the same for the Item Description in the subform, the full details of the item can be displayed (including price) and yet only the foreign key from the product table and the price will be stored in the InvoiceDetails table.
The reason that the price is “copied” is because if you update the pricing in the product table it would change all the pricing in old invoices.
Have a look at the attached screen dump of Relationship from a sample db I created for someone on the web.
As I said in previous post have a look at Northwind, it all there.
Just my 2 cent rave.
I have posted a sample
HERE that shows controls being filled in by a combo and then only saving the key.