Deze constructie zal misschien werken, maar is zo'n beetje de meest onhandige variant die je kunt bedenken, omdat je nu constant tabellen aan het legen en toevoegen bent. En bovendien heb je nu extra tabellen met in beginsel nutteloze informatie, want die staat ook in de andere tabellen. Dus ook al ben je nu tevreden met je oplossing, ik zou die toch snel vergeten, en het anders doen.
Omdat je wel in staat bent om de juiste queries te maken, kun je de oplossing ook met een Union query uitvoeren. In een Union query doe je eigenlijk wat ik voorstelde, namelijk alle 'horizontale' gegevens omzetten naar een 'verticale' tabel. Dus als je voor een veld nu 6 waarden hebt in de velden Waarde1 t/m Waarde6, krijg je in de Union query 6 records, met daarin de velden RecordID en Waarde.
Die is relatief simpel te maken, al moet je dat wel via het SQL venster doen, en niet via het Query ontwerpscherm. Het gaat als volgt:
Je kunt nog wel beginnen in het Ontwerpvenster, want de eerste query is een gewone selectiequery. Met daarin twee velden: [RecordID] en [Waarde1]. [Waarde1] geef je dan de naam: Waarde. In het veld Waarde1 staat dan dus: Waarde:[Waarde1].
De volgende stap moet dan in het SQL venster gebeuren, want nu ga je de code verder combineren. Zodra je de SQL knop aanklikt, zie je de huidige code:
[sql]SELECT [RecordID], [Waarde1] AS Waarde
FROM [Tabelnaam][/sql]
Deze kopieer je, en breid je als volgt uit:
[sql]UNION
SELECT [RecordID], [Waarde2] AS Waarde
FROM [Tabelnaam]
UNION
SELECT [RecordID], [Waarde3] AS Waarde
FROM [Tabelnaam][/sql]
En dat kopieer je dan net zo vaak door tot je alle waardevelden hebt toegevoegd. De laatste regel wordt dan nog:
[sql]ORDER BY [RecordID][/sql]
Nu kun je query opslaan, en heb je een dynamische tabel die altijd de juiste waarden laat zien, en je hoeft dus nooit meer een tabel te maken of bij te werken. Hooguit, als er een veld bij komt, de Union query aanpassen.