Bij mij loopt de db nog gewoon vast... Maar als ik het rapport open, krijg ik gewoon één pagina. Overigens komt het vastlopen denk ik door de muisroutine die je op het hoofdformulier hebt gezet. Staat die daar met een reden? Want waarom mag een gebruiker niet met de muis door de records wandelen?
Het verschil tussen SELECT en SELECT DISTINCT is dat de laatste variant de complete records in de query bekijkt, en de dubbele regels verwijdert. Je ziet dus alleen de unieke combinaties. Je kunt het effect ook bereiken door de knop TOTALEN aan te zetten, en alles te groeperen met GROUP BY.
Dat het in jouw geval een oplossing is, geeft eigenlijk aan dat je basis niet goed is. Want het zou niet nodig hoeven te zijn. Waarom helpt het nu, en waardoor komt het? Om met het laatste te beginnen: een query geeft (een aantal) records terug op basis van de tabellen die je voor de query gebruikt. Als je een query maakt op de tabel Klanten van het veld KlantID, krijg je, als het goed is, voor elke klant één record terug, want je hebt voor elke klant natuurlijk maar één record. Doe je hetzelfde voor de tabel Bestellingen, dan is het resultaat anders: als klantA 6 artikelen bestelt, en klantC 12, dan zie je voor KlantA 6 keer het KlantID, voor KlantC 12, en klantB staat niet in het resultaat, want die heeft nog niks besteld. Door in de tweede query het woord DISTINCT toe te voegen, verander je het resultaat; nu zie je voor klantA en klantC nog maar één record. KlantB nog steeds niks, want die heeft nog steeds niks besteld. Voeg je aan de query Bestellingen echter het Bestelnummer toe, dan krijg je voor KlantA weer 6 records, en voor KlantC 12. Het maakt nu niet meer uit of je SELECT gebruikt of SELECT DISTINT. Vanwege het unieke bestelnummer wordt elke combinatie van KlantID en Bestelnummer apart weergegeven.
Hopelijk zie je al waar dit heengaat: de query die je voor je rapport [bestelling-toestellen] bevat records met herhalende gegevens, die niet uniek zijn. Maar hij bevat wel gegevens die herhaaldelijk terugkomen in één of meer van de brontabellen van het rapport. En dat levert dus niet-unieke records op, die de herhalingen opleveren. Wil je het probeem dus echt te lijf gaan, dan moet je de query zodanig maken, dat elk record in de query uniek is. Of, zoals ik nu gedaan heb, met SELECT DISTINCT de dubbele records eruit filteren.