Een subrapport is een rapport dat is ingevoegd in een ander rapport. Als u rapporten combineert, moet een van de rapporten het hoofdrapport zijn. Een hoofdrapport kan afhankelijk of niet-afhankelijk zijn. Dat wil zeggen: wel of niet gebaseerd op een tabel, query (query: een vraag over de gegevens die in tabellen zijn opgeslagen of een verzoek om een actie uit te voeren op de gegevens. Met een query kunt u gegevens uit verschillende tabellen combineren tot een gegevensbron voor een formulier, rapport of Data Access-pagina.) of SQL-instructie SQL-reeks/instructie: een expressie waarmee een SQL-opdracht wordt gedefinieerd, bijvoorbeeld SELECT, UPDATE of DELETE, en die componenten bevat als WHERE en ORDER BY. SQL-reeksen/instructies worden doorgaans toegepast in query's en statistische functies.).
Subformulieren in rapporten
Een hoofdrapport kan zowel subformulieren (subformulier: een formulier in een ander formulier of rapport.) als subrapporten bevatten, en dat kunnen er zo veel zijn als u wilt. Bovendien kan een hoofdrapport tot twee niveaus diep subformulieren en subrapporten bevatten. Zo kan een rapport bijvoorbeeld een subrapport bevatten en dat subrapport kan weer een subformulier of subrapport bevatten. In de volgende tabel worden de mogelijke combinaties van subformulieren en subrapporten in een hoofdrapport weergegeven.
| Niveau 1 |
Niveau 2 |
| Subrapport 1 |
Subrapport 2 |
| Subrapport 1 |
Subformulier 1 |
| Subformulier 1 |
Subformulier 2 |
Hoofdrapport en subrapport synchroniseren
Als u een subrapport invoegt met gegevens die zijn gerelateerd aan de gegevens in het hoofdrapport, moet het besturingselement met het subrapport (besturingselement subformulier/subrapport: een besturingselement voor het weergeven van een subformulier in een formulier of een subformulier of subrapport in een rapport.) zijn gekoppeld aan het hoofdrapport. Deze koppeling zorgt ervoor dat de records die worden weergegeven in het subrapport, overeenstemmen met de records die worden weergegeven in het hoofdrapport.
Wanneer u een subrapport maakt met een wizard of wanneer u een subrapport maakt door een rapport of gegevensblad uit het databasevenster (databasevenster: het venster dat verschijnt als u een Access-database of een Access-project opent. Het bevat snelkoppelingen voor het maken van nieuwe databaseobjecten en het openen van bestaande objecten.) naar een ander rapport te slepen, worden in Microsoft Access het hoofdrapport en het subrapport in de volgende gevallen automatisch gesynchroniseerd:
- U hebt relaties (relatie: een verbinding tussen gemeenschappelijke velden (kolommen) in twee tabellen. Een relatie kan een-op-een, een-op-veel of veel-op-veel zijn.) gedefinieerd voor de tabellen die u selecteert, of u hebt relaties gedefinieerd voor de onderliggende tabellen van de query's die u selecteert.
- Het hoofdrapport is gebaseerd op een tabel met een primaire sleutel (primaire sleutel: een of meer velden (kolommen) waarvan de waarden elke record in de tabel uniek identificeren. Een primaire sleutel kan geen Null-waarden bevatten en heeft altijd een unieke index. Met een primaire sleutel relateert u een tabel aan refererende sleutels in andere tabellen.) en het subrapport is gebaseerd op een tabel die een veld bevat met dezelfde naam als de primaire sleutel en met hetzelfde of een compatibel gegevenstype (gegevenstype: het kenmerk van een veld dat bepaalt welk type gegevens daarin kunnen worden opgeslagen. Gegevenstypen zijn onder andere Booleaans, Integer, Lang, Valuta, Enkel, Dubbel, Datum, Reeks en Variant (standaardtype).). Als bijvoorbeeld de primaire sleutel van de onderliggende tabel van het hoofdformulier een veld van het type AutoNummering is waarvan de eigenschap Veldlengte is ingesteld op Lange integer, moet het overeenkomstige veld in de onderliggende tabel van het subformulier een veld van het type Numeriek zijn waarvan de eigenschap Veldlengte is ingesteld op Lange integer. Als u een of meer query's selecteert, moeten de onderliggende tabellen in de query of de query's aan dezelfde voorwaarden voldoen.
Opmerking In de rapporten Omzet per categorie en Omzet per jaar in de voorbeelddatabase Noordenwind worden subrapporten gebruikt. Open de database Noordenwind.mdb in de submap Samples van de programmamap van Microsoft Office als u deze rapporten wilt bekijken, en open vervolgens het rapport in de gegevensbladweergave (ontwerpweergave: een venster waarin het ontwerp wordt weergegeven van de volgende databaseobjecten: tabellen, query's, formulieren, rapporten, macro's en Data Access-pagina's. In de ontwerpweergave kunt u nieuwe databaseobjecten maken en het ontwerp van bestaande databaseobjecten wijzigen.).