Een query laat standaard alleen die records zien die in alle tabellen voorkomen. Dus hoe meer tabellen je aan elkaar knoopt in een query, hoe kleiner het aantal records doorgaans zal zijn in die query. Ik zal dat a.d.h.v. een voorbeeldje proberen uit te leggen.
Stel je hebt een tabel Klanten met daarin klantnummers 1,2,3,4,5 en 6 en je hebt een tabel Bestellingen met daarin 2 bestellingen van klant 2, en 3 bestellingen van klant 5.
Maak je een query van de twee tabellen, dan zul je daarin 5 records terugzien: 2 records met gegevens van klant 2, en 3 records van klant 5. Zijn er nog geen bestellingen geplaatst, dan levert een query op basis van de tabel Klanten eerst alle records op; voeg je de tabel Bestellingen toe, dan is de query ineens leeg. Dat komt dus doordat er nog geen bestellingen van klanten zijn vastgelegd. Andere situatie, waarin we weer bestellingen hebben van twee klanten: als we de tabel BestelRegels aan de query toevoegen om artikelen aan de bestellingen te kunnen koppelen, dan zal het aantal records in de query overeenkomen met het aantal bestelde artikelen. In de relaties tussen de tabellen heb je dan een één-op-veel relatie tussen Klanten en Bestellingen, en tussen Bestellingen en BestelRegels. Heb je wèl bestelgegevens vastgelegd in Bestellingen, maar nog geen artikelen toegevoegd in BestelRegels, dan blijft het resultaat dus ook leeg.
Zoals gezegd: de kans dat in jouw query hetzelfde gebeurt, is niet denkbeeldig. Wil je toch alle records zien vanaf een bepaald punt, dan kun je het type koppeling aanpassen door op de koppellijn te dubbelklikken. Je krijgt dan een snelmenu te zien met daarin 3 opties, waarvan optie 1 is geselecteerd (standaard). In mijn voorbeeldje moet ik de optie kiezen waarbij ik <Alle records zien uit de tabel Klanten en de gerelateerde records uit de tabel Bestellingen>. Dan zie ik voor elke klant die besteld heeft de bestelrecords, en voor de overige klanten wel één record (met bijvoorbeeld klantgegevens) maar blijven de bestelgegevens leeg. We noemen zo'n koppeling dan een Outer Join (in tegenstelling dus tot de Inner Join die standaard gebruikt wordt).
Ik leg het wat uitgebreider uit, omdat ik je db op het werk niet kan openen omdat we nog met 2003 werken. Hopelijk is het zo wat duidelijker? Nogmaals: het ligt niet aan je tabellen, noch aan de relaties. Die zijn prima.