Je hebt een beetje een lastige situatie omdat je klanten zowel uit een gekoppelde tabel moet kunnen halen, maar ook vrij moet kunnen toevoegen aan je tabel Herstelling. Normaal gesproken zou je in die tabel alleen een veld KlantID nodig hebben, omdat je op basis daarvan de klantgegevens opzoekt in de tabel Klanten. Maar dat voldoet nu dus niet, omdat niet alle klanten in die klanten tabel staan.
Vraagje: wil je de onbekende klanten vaker kunnen gebruiken, of is eenmalig vastleggen genoeg?
In het eerste geval raad ik een lokale tabel Klanten aan, waarin je de extra klantgegevens vastlegt op dezelfde manier als dat in het kassasysteem gebeurt. Je kunt dan simpel in één keuzelijst zowel de kassaklanten als de 'eigen' TD klanten. Heb je een onbekende klant (niet in Kassa db en niet in TD db) dan voeg je die toe aan de TD db.
In het tweede geval zou je alle adresgegevens bij de Melding moeten opslaan. Die tabel moet dan dus alle NAW gegevens bevatten. Om op basis daarvan een rapport af te drukken, wil je uiteraard ook de NAW gegevens hebben van de klanten uit het kassa systeem, en die zouden dan via de bestaande gekoppelde keuzelijst gekopieerd moeten worden naar de Meldingen tabel. Bovendien moet je dan nog kunnen aangeven op het formulier dat je in het geval van een bestaande klant de keuzelijst gebruikt, en in het geval van een niet-bestaande klant de tekstvakken moet invullen.
Zelf zou ik voor optie 1 gaan, omdat je met optie 2 een totaal niet-genormaliseerde db creëert waarbij gegegens dubbel,en dus fout, in je systeem kunnen komen te staan. Wat doe je bijvoorbeeld als een klant die niet in het kassasysteem staat voor een tweede of derde keer langskomt? Dan moet je elke keer alle gegevens opnieuw invullen. En leg jij een database maar eens uit dat de
J.Reijersweg 123 hetzelfde is als de
J. Reijersweg 123... (verschil? een spatie achter de punt

)
Met optie 1 houd je het systeem dus schoon, en veel eenvoudiger te onderhouden. Je kunt zelfs, mocht je dat willen, klanten importeren in het kassasysteem omdat je de gegevens al op dezelfde manier hebt opgeslagen.
Wat betreft de gebruikte/bestelde artikelen: daarvoor heb je een extra tabel nodig, waarin je een koppelveld maakt voor de meldingID, en je vervolgens voor elk artikel een apart record maakt. Bij 3 artikelen heb je dan 3 records nodig.
Op je formulier kun je met een subformulier dan artikelen toevoegen. Dat subformulier wordt dan op basis van het Meldingsnummer gekoppeld.