[Access] Rapport 2 records naast elkaar

Pagina: 1
Acties:
  • 259 views sinds 30-01-2008
  • Reageer

  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
ik heb een tabel waarin enquette gegevens zitten (70 vragen). Die ziet er ongeveer zo uit:

code:
1
2
3
4
5
naamID          Jaar           vraag1          vraag2
1               2001           100,00          76,00
1               2002           110,00          76,00
2               2001            90,00          10,00
2               2002            20,00          15,00

Nu wil ik een rapport maken waarbij naamid en jaar geselecteerd word. Dit zal dan gekoppeld aan een query 2 records opleveren (Het geselecteerde jaar en het jaar ervoor).
Als je op basis van die query een rapport maakt, komen er natuurlijk 2 rapporten uit (voor elk jaar een).
Ik zou graag de 2 jaren naast elkaar op het rapport krijgen zo dus:
code:
1
2
3
4
5
                2001                  2002
vraag1         100,00                110,00
vraag2          76,00                 76,00
.
.

Nu kan ik natuurlijk de 2e kolom als subrapport plaatsen, maar dan is het uitlijnen een regelrechte ramp. En verschil berekening word er ook niet makkelijker op, maar is mogelijk.

Ik heb al naar de optie kolommen gekeken, maar dat geeft niet het gewenste resultaat.

Ik kan natuurlijk een tabel maken met de velden vraag1_gekozenjaar en vraag1_jaarervoor en deze dmv van vb code gaan vullen, maar de veldnamen zijn in werkelijkheid niet vraag1 tm 70 maar de vraag zelf, dus ook dit is een niet al te prettige klus.
Ik vermoed/hoop dat hier een simpelere oplossing voor is.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • roberts
  • Registratie: December 2001
  • Laatst online: 22-05 11:18
Kruistabel ofwel Crosstab query en daarop rapport draaien wil dat niet ?

Verwijderd

Ik begrijp er niks van.

Als query zul je wel zoiets doen:
SELECT naamID, Jaar, Vraag1, Vraag2
FROM enquette_tabel
GROUP BY Jaar;

Maak eens een rapport met de wizzard over deze query,
als je het rapport vervolgens opent in de ontwerp weergave kun je volgens mij alles precies slepen hoe je het wil hebben.

  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
roberts schreef op 26 januari 2004 @ 12:08:
Kruistabel ofwel Crosstab query en daarop rapport draaien wil dat niet ?
daar heb ik wel wat pogingen mee gedaan, alleen geeft tot nu toe niet gewenste resultaat. Als iemand een tip heeft wat te kiezen als kolom en wat als rij, dan hoor ik dat graag.

[ Voor 33% gewijzigd door Force op 26-01-2004 12:12 ]

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


Verwijderd

roberts schreef op 26 januari 2004 @ 12:08:
Kruistabel ofwel Crosstab query en daarop rapport draaien wil dat niet ?
Hij heeft toch maar 1 tabel?

  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
Verwijderd schreef op 26 januari 2004 @ 12:11:
Ik begrijp er niks van.

Als query zul je wel zoiets doen:
SELECT naamID, Jaar, Vraag1, Vraag2
FROM enquette_tabel
GROUP BY Jaar;

Maak eens een rapport met de wizzard over deze query,
als je het rapport vervolgens opent in de ontwerp weergave kun je volgens mij alles precies slepen hoe je het wil hebben.
nee dat kan dus niet. Die query bedoel ik ook in TS. In het rapport kan je dan wel vraag1 op zijn plek slepen en daaronder vraag2. Maar naast vraag1 moet ook vraag1 komen te staan, alleen dan wel met de waarde van het volgende record in die query. En dat pikt access dus niet. Access gaat uit van 1 record per rapport.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • Boss
  • Registratie: September 1999
  • Laatst online: 06:28

Boss

+1 Overgewaardeerd

Dit is lastig. De gegeven (zoals ik in de startpost zien) zijn zeker wel geschikt om via een kruistabel-query in het gewenste formaat te krijgen. Alleen kan een rapport daar niet zo goed mee omgaan, omdat je dan aan een vaste layout vast zit en dus niet automatisch een nieuwe kolom kan laten maken per jaar.

Je moet dus de querie maken, en vervolgens de kolommen die daar uitkomen in vaste plaatsen zetten in de database.

...

Mmmh... zie net dat vraag 1 en 2 samen in 1 record staan... dat maakt het wel iets lastiger. k denk dat je met een aantal sub-queries zal moeten werken om eerst vraag1 en vraag2 in dezelfde kolom te krijgen. Je moet voor de kruistabel-query een indeling hebben met de kolommen jaar;vraagnr;antwoord.

Komen er nog meer vragen bij, behalve vraag1 en vraag2? Dan zou ik mn model toch wat gaan aanpassen...

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Force
  • Registratie: Januari 2000
  • Laatst online: 31-07-2023

Force

Kan iemand ff me neus afvegen?

Topicstarter
Boss schreef op 26 januari 2004 @ 14:01:
Komen er nog meer vragen bij, behalve vraag1 en vraag2? Dan zou ik mn model toch wat gaan aanpassen...
Ja het gaat dus door tm vraag 70. Elk enquette formulier word opgeslagen in 1 record. Dus je zou het stukje in de TS door kunnen denken tot vraag70.

Het model aanpassen? Naar wat? Het probleem blijft volgens mij altijd dat je naar 1 record toe moet om een raport te maken. Er zal dus een veld vraag1_2001 en vraag1_2002 in dat record moeten komen.

Leven is als een pijpkaneel, iedereen zuigt eraan en krijgt zijn deel.


  • Boss
  • Registratie: September 1999
  • Laatst online: 06:28

Boss

+1 Overgewaardeerd

dubbelpost, zie hieronder

foutje :)

[ Voor 95% gewijzigd door Boss op 26-01-2004 15:37 ]

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Boss
  • Registratie: September 1999
  • Laatst online: 06:28

Boss

+1 Overgewaardeerd

Nee, dat moet juist niet!
Maak de tabel met de kolommen:
-ID
-Vraag
-Jaar
-Antwoord
Vervolgens kan je in de kruistabel query opgeven dat Jaar een kolomkop is, vraag een rijkop en antwoord de waarde.

Alleen moet je dan weer je invoergedeelte aanpassen (denk ik), want dat is nogal een andere methode.


Mocht je het huidige model willen gebruiken, dan heb ik ff een voorbeeldje gemaakt.
Tabel vragen, ziet er bij mij zo uit:
code:
1
2
3
Naam Jaar Vraag1 Vraag2
1    2001 100     76,00
1    2002 110     76,00


Vervolgens
query: vraag1
code:
1
2
SELECT vragen.Jaar, "Vraag1" AS Vraag, vragen.Vraag1 AS Antwoord
FROM vragen;


query: vraag2:
code:
1
2
SELECT vragen.Jaar, "Vraag2" AS Vraag, vragen.Vraag2 AS Antwoord
FROM vragen;


Met een union querie zet ik het resultaat van vraag1 en vraag2 achter elkaar in 1 tabel:
querie: vragentotaal:
code:
1
SELECT * FROM vraag1 UNION SELECT * FROM vraag2;


en tot slot een kruistabel om het geheel in de door jou gewenste opmaak weer te geven:
querie: overzicht
code:
1
2
3
4
5
TRANSFORM Sum(vragentotaal.Antwoord) AS SomVanAntwoord
SELECT vragentotaal.Vraag
FROM vragentotaal
GROUP BY vragentotaal.Vraag
PIVOT vragentotaal.Jaar;

[ Voor 5% gewijzigd door Boss op 26-01-2004 15:38 ]

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.

Pagina: 1