Avatar billede jobless Nybegynder
05. januar 2002 - 14:50 Der er 14 kommentarer og
1 løsning

Rapport baseret på flere forespørgsler

Hej.

Hvordan bygger jeg en rapport på flere forespørgsler. Jeg har forestillet mig at rapporten deles op i et nyt afsnit, som så er baseret på en ny forespørgsel.

MVH

JoBless
Avatar billede flyver23 Nybegynder
05. januar 2002 - 14:59 #1
Øhhh Forklar lige lidt nærmere!!
Avatar billede terry Ekspert
05. januar 2002 - 15:21 #2
It depends on what information the queries \"forespørgsler\" contains.

You could make a report for each query and then use these as sub reports.

Avatar billede terry Ekspert
05. januar 2002 - 15:22 #3
Using sub reports is just like sub forms to a form.
Avatar billede tjacob Juniormester
05. januar 2002 - 17:06 #4
Du kunne indsætte knapper eller lign. (eller sætte betingelser ind i rapportens Load-event) der skifter rapportens postkilde mellem forskellige forespørgsler.

Dette kræver naturligvis også at diverse kontrollers kontrolkilder ændres.

MVH tjacob
Avatar billede jobless Nybegynder
06. januar 2002 - 10:54 #5
Jeg troer lige jeg vil prøve den med under-rapporter, da det lyder til at være umiddelbart nemmest.
Avatar billede terry Ekspert
06. januar 2002 - 10:56 #6
I think so too :o)
Avatar billede jobless Nybegynder
06. januar 2002 - 11:39 #7
Løsningen med underrapporter giver mig tilsyneladende ikke mulighed for senere i hovedrapporten at udføre beregninger med underrapporternes tal, hvilket jeg gerne vil (f.eks summere resultaterne fra (underrapporterne.
Løsningen er måske den med at sætte betingelser ind i rapportens Load-event der skifter rapportens postkilde mellem forskellige forespørgsler. But how do I...?
Avatar billede terry Ekspert
06. januar 2002 - 12:05 #8
jobless> Its not easy to give a precise answer to you rproblem without knowing a bit more about you data. If your data is related then I would suggest you try combining your queries into on equery and making your calculations here. If you need to make calculations between one or more queries then I can not see how tjacobs suggestion of changing the record source is going to help.

Avatar billede jobless Nybegynder
06. januar 2002 - 12:17 #9
I tabellen hvor jeg søger har entitierne ca. 100 egenskaber. 6 af disse er mine 3 sæt start- og slutdatoer på 3 forskellige processer. Jeg indtaster start og slutdato i en formular, og vil så gerne have en rapport grupperet på hhv. de entitier hvor process1 overholder datokreterierne, og på de entitier hvor process2 overholder datokreterierne, og de entitier hvor process 3 overholder datokreterierne. Rapporten skal vise felterne for forbruget ved hhv. process1 process2 og process3, og til sidst vil eg gerne sumere dette forbrug op.
Lyder dette som sort snak?
Avatar billede terry Ekspert
06. januar 2002 - 13:17 #10
So what you are saying is that you have one table and have made three queries for the reports, is that correct?

In the queries that you have made I am guessing that you have the same information (number of columns). What I suggest is you make a UNION query and use this in your report. A UNION query takes the result (output) of your three queries and put them into one. Then in the report you can group the result on the process type and sum \"forbrug\".

You can read about UNION queries in Access help.


Avatar billede jobless Nybegynder
06. januar 2002 - 16:04 #11
Det lyder som den rigtige måde. Jeg prøver dette (min access er engelsk, så jeg skal lige læse hjælpefilen 5-10 gange) ;=))
Avatar billede jobless Nybegynder
06. januar 2002 - 21:13 #12
UNION løser åbentbart ikke lige problemet. Jeg har følgende 3 forespørgsler jeg gerne vil bruge på samme rapport, samt beregne nogle værdier baseret på alle 3 forespørgsler, i rapporten:
1:
SELECT Min(møller.[zink start tid]) AS [MinOfzink start tid], Max(møller.[zink slut tid]) AS [MaxOfzink slut tid], Sum(møller.zink) AS SumOfzink, Sum([zink fortynder]*[zink]/100) AS [z-forbrug], Count(Kabiner.Kabine) AS AntalOfKabine
FROM Kabiner INNER JOIN møller ON Kabiner.id = møller.[Kabine nr]
HAVING (((Min(møller.[zink start tid]))>[Forms]![Forbrug]![start]) AND ((Max(møller.[zink slut tid]))<[Forms]![Forbrug]![slut]));

2:
SELECT Min(møller.[Primer start tid]) AS [MinOfPrimer start tid], Max(møller.[Primer slut tid]) AS [MaxOfPrimer slut tid], Sum(møller.Primer) AS SumOfPrimer, Sum([Primer fortynder]*[primer]/100) AS [p-forbrug], Count(møller.[Kabine nr]) AS [CountOfKabine nr]
FROM Kabiner INNER JOIN møller ON Kabiner.id = møller.[Kabine nr]
HAVING (((Min(møller.[Primer start tid]))>[Forms]![Forbrug]![start]) AND ((Max(møller.[Primer slut tid]))<[Forms]![Forbrug]![slut]));

3:
SELECT Min(møller.[Top start tid]) AS [MinOfTop start tid], Max(møller.[Top slut tid]) AS [MaxOfTop slut tid], Sum(møller.Top) AS SumOfTop, Sum([top fortynder]*[top]/100) AS fortynder, Count(møller.[Kabine nr]) AS [CountOfKabine nr]
FROM Kabiner INNER JOIN møller ON Kabiner.id = møller.[Kabine nr]
HAVING (((Min(møller.[Top start tid]))>[Forms]![Forbrug]![start]) AND ((Max(møller.[Top slut tid]))<[Forms]![Forbrug]![slut]));


Det er vigtigt at jeg får samme resultat i en evt. samlet forespørgsel som i 3 seperate, idet der hentes fra samme tabel, og jeg ikke skal bruge værdierne fra f.eks. process1 hvis datokreterierne ikke overholdes af process1, men derimod f.eks skal bruge værdierne fra process2 og process3 hvis disse overholder datokreterierne.
Avatar billede terry Ekspert
07. januar 2002 - 08:25 #13
hi jobless!
I will take a look at your dB if you send it to dktebrsa@europe.lego.com
Avatar billede jobless Nybegynder
07. januar 2002 - 15:13 #14
Jeg løser det med en samlet forespørgsel med udregningnerne, og så henter jeg værdien med Dfirst funktionen, som Terry foreslog mig.
Avatar billede terry Ekspert
07. januar 2002 - 15:16 #15
thanks :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester