Kruistabellen

  • Onderwerp starter Onderwerp starter VHU
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

VHU

Gebruiker
Lid geworden
15 nov 2005
Berichten
96
Geachte,

Ik heb een kruistabel waarbij de kolomkoppen variable datumvelden zijn. Elke maand vul ik bepaalde gevens in. Ik heb dus 12 variable kolomkoppen
Ik wil een jaarlijks overzicht van deze gegevens. 2008 is bijna voorbij en ik wil nu enkel de velden weergeven van een jaar naar keuze.

Hoe kan ik dit doen?

Groeten
 

Bijlagen

Onderstaand wat informatie over draaitabel querys:

Access 2003:

http://www.gratiscursus.be/access_2003/accessles9.htm

Access 2007:

http://www.gratiscursus.be/access_2007/AccessLes032.htm

http://www.gratiscursus.be/access_2007/AccessLes061.htm

http://www.gratiscursus.be/access_2007/AccessLes062.htm

En nog een manier om een kruistabel query te maken zonder de wizard. Dit maakt je veel flexibeler met het gebruiken van criteria. Echt de moeite waard om te bekijken:

http://www.datapigtechnologies.com/flashfiles/crosstab.html

Charles
 
Dag Charles,

Inderdaad interessante links maar ik vindt hier niet dadelijk een antwoord op mijn vraag.

Op het moment dat ik de kruistabel open doe, moet ik de vraag krijgen : "Jaar ?" en ik tik het gewenste jaar in.

Dit weet ik niet hoe ik dat kan verkrijgen met het voorbeeld in bijlage

Groeten
 
Op het moment dat ik de kruistabel open doe, moet ik de vraag krijgen : "Jaar ?" en ik tik het gewenste jaar in.

Dat krijg ik helaas niet voor elkaar. Wel kan ik query's bouwen met een vaste criteria op basis van een jaar. Zie bijlage, misschien kun je hier verder op experimenteren.

mvg
Charles
 

Bijlagen

Die parameter krijg je door een Veldnaam toe te voegen die niet in je query voorkomt. bijvoorbeeld als je tabel bestaat uit de velden ID, Naam, Adres, Woonplaats en je wilt een ID op kunnen geven dan kan je query er als volgt uitzien:
Code:
Select ID, Naam, Adres, Woonplaats from Table1 where ID = [Geef het ID op:]
als je de query uitvoert dan zal access met de vraag komen "Geeft het ID op:"

Enjoy!
 
Dag Guus,

Ik heb de tekst tussen **** bijgevoegd maar krijg dan de melding
"De microsoft Office Access-database-engine kan [Welk jaar] niet herkennen als geldige veldnaam of expressie"

Als ik nu ipv [Welk jaar] gewoon 2008 of 2009 zet dan werkt het wel.

Moet ik voor dit iets aanpassen in Access zelf of waar zit ik fout??

Beste wensen en een goede gezondheid voor 2009 en volgende

Groeten
Roger
TRANSFORM First(tblOpnameEnergieKruistabelCD.opnWGEKresultaat) AS EersteVanopnWGEResultaat
SELECT tblOpnameEnergieKruistabelCD.opnWGEKid, tblOpnameEnergieKruistabelCD.opnWGEKrubriek, tblOpnameEnergieKruistabelCD.opnWGEKvolgnrmeter, tblOpnameEnergieKruistabelCD.opnWGEKmeteromschrijving
FROM tblOpnameEnergieKruistabelCD
*****WHERE (((Year([opnWGEKdatum]))=[welk jaar])) *******
GROUP BY tblOpnameEnergieKruistabelCD.opnWGEKid, tblOpnameEnergieKruistabelCD.opnWGEKrubriek, tblOpnameEnergieKruistabelCD.opnWGEKvolgnrmeter, tblOpnameEnergieKruistabelCD.opnWGEKmeteromschrijving
ORDER BY tblOpnameEnergieKruistabelCD.opnWGEKid, tblOpnameEnergieKruistabelCD.opnWGEKvolgnrmeter, tblOpnameEnergieKruistabelCD.opnWGEKdatum
PIVOT tblOpnameEnergieKruistabelCD.opnWGEKdatum;
 
Zet de parameter [welk jaar] ook bij de parameters (menu Query - Parameters)
In SQL begint je query dan met:
PARAMETERS [welk jaar] Short;
TRANSFORM ......
 
Dag Harry46

Dit heb ik ondertussen ook gevonden, ik werk nml met Office2007, is nog zoeken.

Maar ondertussen heb ik het volgende probleem :

Als ik het rapport wil openen krijg ik het volgende alarm :
"Fout 3061
Er zijn te weinig parameters. Het verwachte aantal is :1"

Foutopsporing :

Private Sub Report_Open(Cancel As Integer)
Dim x As Integer
DoCmd.Maximize

** For Each fld In CurrentDb.OpenRecordset(Me.RecordSource, 4).Fields*** dit kleurt geel
x = x + 1
If x > 4 And x < 16 Then
Me("bij" & x).Caption = fld.Name
Me("bij" & x).Visible = -1
Me("v" & x).ControlSource = fld.Name
Me("v" & x).Visible = -1
End If
Next fld
End Sub

Groeten

Roger
 
Probeer het eens op een andere manier, b.v door de onderliggende query te gebruiken
Code:
With DBEngine(0)(0).OpenRecordset("HierDeNaamVanDeKruisTabelQuery")
    For Each fld In .Fields
       enz
 
Dag Harry46

Ik heb gedaan zoals jij voorstelde maar blijf dezelfde foutmelding krijgen.

Groeten

Roger
 
Probleem zit waarschijnlijk in de parameter die je in query gebruikt.
Wanneer je zo'n query wilt gebruiken in b.v. een rapport, gebruik dan een functie als criterium.
Mogelijke oplossing:
stap 1.
definieer in een algemene module (dus bij Modules)
Public piJaar as Integer
en een functie b.v.
Function fJaar() as Integer
fJaar=piJaar
End Function

stap 2.
In de on-open gebeurtenis van je rapport neem je een inputbox op:
piJaar=InputBox("Welk jaar", "Voer een jaartal in", Year(Date))
Hierna kan de code komen die je al hebt.

stap 3.
Haal uit je kruistabelquery de parameter en zet op de plaats van het criterium fJaar()
 
Dag Harry46

Bedankt dit werkt net zoals ik het in gedachte had maar kan je mij nu ook eens uitleggen wat je juist gedaan hebt?

Alvast bedankt, een prettig eindejaar en een goede gezondheid aan u allen

Roger
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan