Avatar billede william_munny Nybegynder
18. april 2004 - 16:02 Der er 11 kommentarer og
2 løsninger

Problem med print af Report

Kære eksperter,
jeg har et problem når jeg forsøger at printe min report, hvis jeg printer den uden preview med kommandoen.
DoCmd.OpenReport stDocName, acNormal, , "([ID]=" & Form_APBA.txtID.Value& ")".

hvis jeg istedet gør:
DoCmd.OpenReport stDocName, acViewPreview, , "([ID]=" & Form_APBA.txtID.Value & ")"
DoCmd.RunCommand acCmdPrint

Printer den ikke hele min report den skipper to sub reports som jeg fylder hver især med eventet Report_Open. De 2 sub reports bliver fint vist i Previewet men bliver ikke printet ud ? Grunden til at jeg gerne vil bruge den anden mulighed med
DoCmd.RunCommand acCmdPrint er at jeg gerne vil give brugeren mulighede for at vælge printer, udskrive på begge sider osv.
Jeg bruger Access 2k og win 2k.
18. april 2004 - 16:15 #1
Jeg går ud fra, at det er en skrivefejl, at de 2 docmd.openreport-udtryk er lidt forskellige:

Do kan evt prøve at placere denne på din knap:
DoCmd.OpenReport stDocName, acViewPreview, , "ID=" & Me!txtID 'en mere simple syntaks
Doevents
DoCmd.RunCommand acCmdPrint

Begrundelse: Jeg kunne forestille mig, at rapporten endnu ikke er færdigindlæst inden du beder den udskrive.

Jeg ved dog ikke om DoEvents er nok!?
Avatar billede william_munny Nybegynder
18. april 2004 - 16:25 #2
Ingen held med Doevents :-( Måske en længere pause af en art ?
Og ja det var en skrive fejl :-)
Avatar billede hekla Nybegynder
18. april 2004 - 16:34 #3
Hvad med at prøve at sætte DoCmd.RunCommand acCmdPrint ind som rapportens VedÅbning-hændelse?
Avatar billede william_munny Nybegynder
18. april 2004 - 16:39 #4
Det giver mig en Run time Error:2585, this action can´t be carried out while processing a form or report event.

Sådan noget hø, også på en søndag.
18. april 2004 - 17:41 #5
prøv - bare for testens skyld - at indsætte en lang løkke i stedet for doevents:

Dim n as long
DoCmd.OpenReport stDocName, acViewPreview, , "ID=" & Me!txtID 'en mere simple syntaks
For n = 1 to 100000:Next n
DoCmd.RunCommand acCmdPrint
Avatar billede william_munny Nybegynder
19. april 2004 - 13:15 #6
Det lader ikke til at det er her problemet ligger? Det virker ihvertfald ikke. Sådan her ser min subreport kode ud:

Private Sub Report_Open(Cancel As Integer)

    Dim sqlstring As String
    sqlstring = APBA.findRisks
    Report_Risks.RecordSource = "Select * from APBA_Risks_table where" & sqlstring & " ORDER BY RisksID ASC"
 
End Sub

Hvis det kan være til noget hjælp.
19. april 2004 - 13:29 #7
hmm, hvad sker der, hvis du kun åbner rapporten i preview? Kommer subrapporten så med?

Jeg tror nok, at det er tildeling af Recordsource'n, som er årsag til fejlen. Men hvorfor det virker med den ene metode og ikke den anden er en gåde :o(
Avatar billede william_munny Nybegynder
19. april 2004 - 13:32 #8
Ja det er en gåde.
Hvis jeg bare åbner den i almindeligt preview så bliver begge mine subreports vist ganske fint som de skal. Så det er lidt svært at se hvorfor det "forsvinder" fra mit print.
19. april 2004 - 14:11 #9
og hvis du så (fra Preview) vælger Filer->Udskriv og udskriver på den måde. Kommer de så med? Eller er det kun, når du skyder det hele afsted på én gang, at subrapporten mangler?
Avatar billede william_munny Nybegynder
19. april 2004 - 14:19 #10
Det er kun når jeg skyder det hele afsted på engang det virker. :-(
20. april 2004 - 09:51 #11
Hvis fejlen skyldes at du sætter recordsourcen på subrapporten ved åbning, så er der 3 muligheder, som jeg ser det:

1) Opbyg din recordsourcen fra starten, så den ikke behøver at blive ændret for hver gang (f.eks. ved brug af funktioner (variable))

2) Lad recordsourcen være en gemt forespørgsel, som du herefter ændre lige inden du åbner rapporten:
  Eks:
  currentdb.Querydefs("Dinrecordsource").SQL = "Select * from APBA_Risks_table where" & sqlstring & " ORDER BY RisksID ASC"
  DoCmd.OpenReport stDocName, acViewPreview, , "([ID]=" & Form_APBA.txtID.Value & ")"
  DoCmd.RunCommand acCmdPrint

3) Åbne subrapporten i designvisning, skift recordsourcen , luk rapport og gem, og åbne igen i Preview:
  Eks:
  Docmd.Openreport "DinSubreport",acViewDesign
  Reports!DinSubrapport.recordsource = "Select * from APBA_Risks_table where" & sqlstring & " ORDER BY RisksID ASC"
  Docmd.Close acreport, "DinSubrapport",acSaveyes
  DoCmd.OpenReport stDocName, acViewPreview, , "([ID]=" & Form_APBA.txtID.Value & ")"
  DoCmd.RunCommand acCmdPrint

/Thomas
Avatar billede william_munny Nybegynder
20. april 2004 - 13:21 #12
Jeg vil nok give dig ret i at problemet ligger ved sætningen af recordsourcen, Og det skyldes et ringe database design. Jeg har en enkelt kolonne som mappes til en masse poster i to andre tabeller opdelt som kommaværdier :-(. Så det er noget hø, og skal laves om når jeg gider :-) Skal nok prøve dine løsningsforslag på et tidspunkt men indtil videre bibeholder jeg den eksisterende funktionalitet. Du får point for din gode hjælp.
20. april 2004 - 13:24 #13
thnx :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