Avatar billede petersen7913 Forsker
29. marts 2008 - 19:22 Der er 14 kommentarer og
2 løsninger

Loope gennem en query

Jeg har en query, som holder en parameter til en rappport.

Q: select <p1> from ....

Når brugeren trykker på print ønkser jeg at printe rapporten

loop
  <parameter fra q>
  print rapport ... where <parameter>....
...
end loop

Jeg har forsøgt med recordset, men kan ikke få det til at fungere. Så hvordan kan jeg åbne min query og fiske data ud til min rapport?
Avatar billede mugs Novice
29. marts 2008 - 20:02 #1
Indsæt et kriterie!
Avatar billede petersen7913 Forsker
29. marts 2008 - 21:20 #2
Problemet er ikke et kriterie. Problemet er hvordan jeg kan få fat i min querynde i koden.
Avatar billede mugs Novice
29. marts 2008 - 21:24 #3
Dette forstår jeg ikke:

"Problemet er hvordan jeg kan få fat i min querynde i koden"

Vil du f.eks udskrive formularens aktuelle post?
Avatar billede petersen7913 Forsker
29. marts 2008 - 21:47 #4
Grundlæggende har jeg data om nogle hold med nogle medlemmer.

Jeg har lavet en query, så man kan se medlemmer pr. hold.

Så har jeg en rapport, der for 1! hold udskriver medlemmerne på det hold. Meningen er, at hver instruktør kan få sin egen liste med.

Og jeg vil gerne kunne udskrive alle holdlister på en gang, dvs. udfra min query (der giver holdet) kan printe holdlisten for lige netop det hold.

Håber du forstår? Ellers skyldes det nok at mit hoved er ved at stå af, er nok mere frisk imorgen ;)
Avatar billede mugs Novice
29. marts 2008 - 21:55 #5
Hvis feltet med holdet er alfanumerisk, skal du bruge denne:

DoCmd.OpenReport "RAPPORTNAVN", acViewPreview, , "[TABELNAVN]![HOLD] = '" & Me!HOLD & "'"

Hvis feltet er numerisk så er det denne:

DoCmd.OpenReport "RAPPORTNAVN", acViewPreview, , "[TABELNAVN]![HOLD] = " & Me!HOLD & ""

Du bruger den samme rapport til alle hold. Koden udskriver alle deltagere på det hold, hvis holdnr ses i formularen. Det gør den, fordi kriteriet er flyttet ind i formularens udskrivningskommando.
Avatar billede petersen7913 Forsker
30. marts 2008 - 10:35 #6
Jo, men jeg ser ikke holdenr i formularen. Det kan jeg gøre et andet sted, hvor man kun udskriver 1! holdliste. Jeg ønsker at udskrive alle holdlister, svarende til at man i formuaren vlger 'hold 1' - print, hold 2 - print, hold 3 - print .....

Her er ønsker jeg:

hent alle holdene vha. en query
print query.hold1, query.hold2, query hold3 ....

Så jeg er ikke i nærheden af at have en værdi i en formular.
Avatar billede terry Ekspert
30. marts 2008 - 10:57 #7
Function PrintAll()
Dim rs As ADODB.Recordset

    Set rs = New ADODB.Recordset
    With rs
       
        Set .ActiveConnection = CurrentProject.Connection
       
        .Open "Select * from qry1"
       
        Do Until .EOF
       
            DoCmd.OpenReport "SomeReport", , , "SomeField = " & rs(0)
           
            .MoveNext
           
        Loop
       
    End With
    rs.Close


End Function
Avatar billede petersen7913 Forsker
30. marts 2008 - 12:03 #8
Det ser ikke ud til at virke i 2007.

Jeg får fejl på Dim rs As ADODB.Recordset
Så kan jeg rette det til Dim rs As Recordset, men får så fejl når jeg kommer til
Set rs = New Recordset, dvs. jeg får ikke lov til at lave en 'new'

Er der SÅ! stor forskel på 2003 og 2007?????
Avatar billede terry Ekspert
30. marts 2008 - 12:20 #9
In Access < 2007 there is a reference to ADO already (I think). In 2007 you may need to make a reference to ADO. (Tools+References) then find Microsoft ActiveX Data Objects and choose the newest version
Avatar billede mugs Novice
30. marts 2008 - 12:20 #10
Du kan blot gruppere din forespørgsel efter holdene og vælge at vise gruppefod. I gruppefoden kan du så sætte et sideskift, så den starter på en ny sode for hvert hold.
Avatar billede petersen7913 Forsker
30. marts 2008 - 13:49 #11
mugs> hm ... jeg synes det er ret vigtigt at jeg generelt ved hvordan jeg kan bruge en query, men ellers fint forslag ;)

terry> Tools - References is looking much more different :( can you help with more details?
Avatar billede petersen7913 Forsker
30. marts 2008 - 14:12 #12
I was looking in the Access, not in the VBA. So now 1) I am a litle bit wiser and 2) I think it works now

So thanks to both :)
Avatar billede terry Ekspert
30. marts 2008 - 14:14 #13
Tools - References

You need to be in code view.
Avatar billede petersen7913 Forsker
30. marts 2008 - 14:18 #14
Now my test example works :)
Avatar billede mugs Novice
30. marts 2008 - 14:20 #15
"Du kan blot gruppere din forespørgsel efter holdene og vælge at vise gruppefod"

ordet forespørgsel skal ændres til rapport. Der er ingen gruppefod i en forespørgsel!!!
Avatar billede petersen7913 Forsker
30. marts 2008 - 15:22 #16
Tak, jeg prøver det lige :)
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