Zelde kruistabel met verschillende kolom

Status
Niet open voor verdere reacties.

janbeeusaert

Gebruiker
Lid geworden
1 nov 2009
Berichten
8
Beste,

Ik heb in een tabel (tbluren) een overzicht van alle uren die een medewerker gepresteerd heeft. Dus een kolom met naam medewerker, naam afdeling, naam functie, maand en jaar en dan een 120 tal kolommen met de verschillende type uren die iemand kan doen. bv uren educatief verlof, gewerkte uren, verlof uren, uren ziekte, enz. Vaak met een waarde 0 maar deze tabel importeer ik vanuit een loonafwerkingspakket.

Nu heb ik een kruistabelquery die een overzicht geeft van Afdeling (rijkop) en Functie (Kolomkop) met de som van de waarde van één van de kolommen met uren (bv educatief verlof).
In een tweede kruistabel neem ik niet de uren educatief verlof uren op maar de som van de uren ziekte als waarde.

Nu wil ik dezelfde kruistabel trekken van alle mogelijk uren. Ik kan nu 120 keer een kruistabel aanmaken of een alternatief zoeken.

In eerste instantie gezocht om een extra tabel aan te maken met de exacte omschrijving van de kolommen van mijn tbluren. Vervolgens deze tabel op te nemen in een formulier met een Keuzelijst waarbij ik het type uren kan aanduiden en dan steeds opnieuw dezelfde kruistabel kan trekken met een ander kolom van tbluren die varieert naargelang de selectie in mijn Keuzelijst.

Iemand een idee?
 
Je zal om te beginnen je database goed moeten ontwerpen. Een tabel met 120 kolommen voor de verschillende soorten uren is een heel fout ontwerp. Je zou een tabel moeten hebben met iets als:
  • Medewerker
  • Afdeling
  • Functie
  • Soort uren
  • Maand
  • Jaar
  • Aantal uren

In de query kan je dan selecteren op Soort uren.
 
Laatst bewerkt:
Weet ik maar ik kan maar vertrekken vanuit wat ik uit het loonverwerkingspakket kan trekken en exporteren.
 
Als je wil werken met de excel structuur zoals je aangeleverd krijgt, kan een alternatief zijn om de oplossing te zoeken in excel. Met macro's en pivot tables moet dat wel te doen zijn.
 
Ik was (uiteraard) een beetje kort door de bocht, want hoewel het in eerste instantie niet kan, kun je wel met een tussenoplossing wellicht wat doen. Die tussenoplossing is: maak eerst een Union query die de kolommen wél op de juiste manier ordent. En zo'n query ziet er dan zo uit:
Code:
SELECT Medewerker, Afdeling, Functie, Maand, Jaar, "Gewerkte Uren" AS Type, Gewerkte_uren AS Uren FROM tblUren
UNION
SELECT Medewerker, Afdeling, Functie, Maand, Jaar, "Verlof Uren" AS Type, Verlof_uren AS Uren FROM tblUren
UNION
SELECT Medewerker, Afdeling, Functie, Maand, Jaar, "Ziekte Uren" AS Type, Uren_ziekte AS Uren FROM tblUren

Dit moet je dan dus doen voor alle kolommen met een waarde, dus voor je 120 kolommen. Knappe koppen trouwens bij jullie; ik heb al moeite om 20 types te bedenken. 120 is dus écht een meesterwerkje :).
Die query gebruik je dan als basis voor je kruistabellen, bijvoorbeeld zo:

Code:
TRANSFORM Sum(Uren) AS SomVanUren SELECT Afdeling FROM qUrenoverzicht WHERE Type="Educatief Verlof" GROUP BY Afdeling PIVOT Type;

In het Design venster van die query kun je dan makkelijk selecteren wat je wilt. Of gebruik daar een formulier voor, waarbij je het type selecteert met een keuzelijst. Een handige manier daarvoor staat in de Access cursus beschreven.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan