Dubbele records in formulieren en rapporten

Status
Niet open voor verdere reacties.

erikbeks

Nieuwe gebruiker
Lid geworden
18 sep 2013
Berichten
2
Goedemiddag allemaal,

Ik ben een database aan het maken en ervaar wat problemen met het opstellen van rapporten en formulieren.
Wellicht ligt dit aan de opzet van de tabellen / relaties. Ik probeer het zo goed mogelijk uit te leggen.

De database is bedoelt om retouren van klanten te verwerken en bij te houden.
Het probleem zit hem volgens mij in twee tabellen die ik gebruik.

Tabel RMA nummer (voor algemene info)
tabel RMA nummer.jpg

Tabe RMA details (voor de details)
tabel RMA details.jpg

Als ik nu een formulier of rapport maak, krijg ik voor elk RMA nummer meerdere pagina's.
Als een RMA nummer bestaat uit 1 product, dan gaat het goed. Wanneer een RMA nummer uit 4 producten bestaat, dan krijg ik ook 4 pagina's op mijn formulier of rapport.
Ik heb geen idee hoe ik dit nu aanpas.

Hieronder het formulier wat ik het aangemaakt voor het invoeren van RMA nummers:
RMA invoer formulier.jpg

Hieronder de relaties van mijn database:
Relaties.jpg

Ik weet niet welke gegevens nog meer interessant zijn, maar wellicht kan iemand me op basis van deze gegevens helpen.
Ik ben eventueel bereikbaar via Skype (erikbeks). Hopelijk kan iemand helpen, want ik zit me al 3 dagen op te vreten :confused:
 
Er vallen een paar dingen op die niet goed zijn. Laten we beginnen met de relaties:

1. Geen enkele koppeling heeft <Referentiële integreit> aangevinkt. Dat maakt de relaties volkomen waardeloos; je kunt net zo goed [Behandelt door] ( met spelfout ;) ) koppelen aan [Barcode nummer], dan werkt de relatie net zo goed (of compleet niet dus).

2. Gebruik in relaties alleen Inner joins; je hebt voor [RMA nummer] naar [RMA details] een Outer join gebruikt, die ook weer nutteloos is.

3. De koppeling tussen [Debiteuren] en [RMA nummer] maak je met het verkeerde veld; je moet altijd een sleutelveld koppelen aan een afhankelijk veld. Dat zou dus moeten zijn: [Debiteuren].[Nummer] op [RMA nummer].[Klant].

4. De tabellen [RMA acties], [Leveranciers] en [Klacht categorie] hebben geen correct (numeriek) ID veld; die moet je dus toevoegen, en opnieuw koppelen. Daarbij moet je de koppelvelden in [RMA details] omzetten naar numerieke velden, anders kan je niet koppelen.

Dan je formulier.
Dat moet je ombouwen naar een hoofdformulier (op basis van [RMA nummer]) en een doorlopend subformulier (op basis van [RMA details]). Die koppel je op het veld [RMA nummer]. Overigens zou ik nooit een tabel dezelfde naam geven als een veld; hoe ga je die ooit goed uit elkaar houden? geef een tabel een voorvoegsel ([tblRMANummer] bijvoorbeeld; probeer zoveel mogelijk om spaties in namen (geldt voor tabellen, velden formulieren, etc) te voorkomen). Het formulier noem je dan frmRMAnummer, en frmRMnummerDetails.
Het hoofdformulier kent één record (uniek [RMA nummer]) en het subformulier laat de bij dat nummer horende detailrecords zien.

Klussen dus :)
 
Thanks Octafish voor je snelle reactie.

Dat is zware kost. Ik heb even snel gekeken wat je hebt geschreven.

1) Ik moet even kijken hoe ik een inner-join maak. Ik begrijp niet goed wat je hiermee bedoelt.

2) De koppeling RMA nummers is lastig, omdat RMA details meedere keren hetzelfde nummer kan bevatten. Deze kan ik dus niet als KEY instellen.
Ik zal er al aan te denken om dit veld te verwijderen in de tabel DETAILS, maar dan kan ik de tabellen niet meer koppelen.
Een andere manier om deze tabellen te koppelen zie ik niet. Dit is wel het grootste struikelblok in de hele database.

3) De andere drie tabellen koppelen middels een koppelveld moet wel lukken. Dat is gewoon een ID veld aanmaken en deze instellen als KEY neem ik aan.
 
Als je de db zelf hebt gemaakt, en de relaties ook zelf heb gelegd, heb je minstens één keer ([RMA nummer] naar [RMA details] ) op de knop <Jointype> geklikt, en de standaardoptie 1 verandert in 2 of 3. Tenzij daar een specifieke reden voor is, zou ik dat terugzetten naar optie 1.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan