Hi Tom,
I hope, i didn't misunderstood you again, else put my answer to the recycle bin.
I think I had a similar problem whith an article database and an offering tool. I had to choose articles from the article database to generate the offer as a Report.
The offer should have a unique serial number and has to be stored, so that it is possible to recall the original offer, even when the prices of one ore more included articles has changed in the meantime.
Because you are talking about invoices, I think you have the same necessity. If yes, you should do as follows:
Build a new database table InvoiceHeader which contains the field 'InvoiceNumber' (auto filled, unique) and perhaps additional fields like 'Printed' or 'InvoiceTye'. Build two new tables InvoiceArticle and InvoiceAddress which are similar to your original article and address tables, but have the additional field 'InvoiceNumber'.
Join the InvoiceHeader table whith the InvoiceArticle and the InvoiceAddress table via the 'InvoiceArticle' field. Define the relational options 'Insert if no records match the InvoiceHeader record, typing into a blank InvoiceAddress/InvoiceArticle filed inserts a new record.
Join the InvoiceAddress table to your address table (e.g. via a customer number field if existing).
Join the InvoiceArticle table to your article database (e.g. via an article number field). In both cases the relational options should all be set OFF.
Next generate a new form (Main Database InvoiceHeader)which contains the InvoiceHeader fields (InvoiceNumber read only), the fields from the InvoiceAddress table and a repeating panel containing the fields from the InvoiceArticle table.
Create a Macro which starts when the new form is entered and contains the command 'Records - create new record. When you start the panel a new invoice number will be generated.
Define the properties for the join field in the InvoiceAddress (e.g. CustomerNumber) as Drop-down-list. In the Define Drop-Down List chose 'create List automatically from field data' and 'Show drop-down arrow'. In Options 'Field to create list from' choose your address table.
Repeat this action with the join field (e.g. article number) of the InvoiceArticle table, but chose your article table in the 'Field to create list from' dialog.
Build a new SetAdress macro containing Set commands for each field of your address table which should be transferred to the InvoiceAddress record.
Build a new SetArticle macro containing Set commands for each field of your article table which should be transferred to the InvoiceArticle record.
Change the properties of the 'InvoiceAdress' join field (customer number). Define the SetAddress macro to start 'On Tab Out' of the field.
Change the properties of the 'InvoiceArticle' join field (article number). Define the SetArticle macro to start 'On Tab Out' of the field.
If you start your new form the following should happen:
A new invoice number should be generated.
You should be able to select an address from your address table. After you leave the field by clicking into another the data from the selected record should be transferred into the actual InvoiceAddress record.
You schould be able to select one ore more articles in the repeating panel and after leaving the article number field the data from the selected article record should be transferred to the actual InvoiceArticle record.
Now you are able to generate a report, which gets his input from the InvoiceHeader, InvoiceAddress and InvoiceArticle tables.
Lutz