Avatar billede selar Nybegynder
09. februar 2009 - 18:30 Der er 7 kommentarer og
1 løsning

Overføre sql fra form til rapport

Hej.

Jeg har lavet en form, hvor jeg sammensætter mit SQL udfra en lang række søgekriterier. Er det muligt at overføre et helt sqlstatement til en rapport med docmd.openreport ? Og det er ikke kun where-klausulen jeg ønsker at overføre men hel sqlstatementet.
Avatar billede mugs Novice
09. februar 2009 - 18:48 #1
Hvis din form er filtreret efter nogle søgekriterier, burde du kunne udskrive de filtrerede poster med denne:

DoCmd.OpenReport "DIN RAPPORT", acViewPreview, , Me.Filter

Jeg ser intet formål med at overføre sqlstatement. Men måske du kan forklare nærmere.
Avatar billede terry Ekspert
09. februar 2009 - 19:26 #2
"Og det er ikke kun where-klausulen jeg ønsker at overføre men hel sqlstatementet. "

No
Avatar billede terry Ekspert
09. februar 2009 - 19:44 #3
Another idea would be to base the report on a query and alter the SQL in the query before you open the report.

CurrentDb.QueryDefs("query1").SQL = "SELECT * FROM tbl1"
Avatar billede Slettet bruger
09. februar 2009 - 22:22 #4
Hvis du har lavet en forespørgsel og har forskellige valg, som kriterier, så kan du ikke umiddelbart få dette med i sql-strengen.. jeg vil foreslå at du laver de samme felter et eller andet sted i din rapport og så bare viser hvilke værdier, som er indtastet for hver kriterie!~)

Du kan f.eks. referere direkte til felterne på din formular fra ubundne felter i din rapport....
Avatar billede terry Ekspert
12. februar 2009 - 12:04 #5
tak
Avatar billede hugopedersen Nybegynder
12. februar 2009 - 14:28 #6
Jeg må korrigere her!

Det er muligt at bygge en SQL streng op på en formular og overføre den til en rapport. Jeg gør det jævnligt. Men det er besværligt.

Du kan gøre det på 2 forskellige måder. Lav en global variabel som du bygger din SQL op i. Lav en funktion der som det eneste returnerer din variabel.
På rapportens Open evnt skriver du
Me.RecordSource = NavnetPaaDinFunktion()

Jeg bruger selv det at jeg gemmer den opbyggede SQL i registry og så læser jeg den på on Open eventen

Me.RecordSource = fhpRegistry_Read_Report_Recordsource(Me.Name)
Avatar billede terry Ekspert
12. februar 2009 - 19:30 #7
Hi Hugo

My "No" answer was in answer to the question

"Er det muligt at overføre et helt sqlstatement til en rapport med docmd.openreport ?"

I'm sure there are many ways to open a report where the SQL is built dynamically and the idea I gave is just one of them.

I'm sure yours will work too.
Avatar billede hugopedersen Nybegynder
12. februar 2009 - 21:28 #8
Actually you could do it with DoCmd as OpenParms - that should be possible. (but not tested)
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