Avatar billede dri Nybegynder
20. december 2001 - 08:27 Der er 7 kommentarer og
2 løsninger

Lav rapport ud fra formular med kritier

Jeg har lavet en formular, hvor jeg via en kombiboks vælger de poster som jeg vil se.
Disse valgte poster vil jeg gerne have vist i en rapport.
Hvis jeg laver en rapport ud fra denne formular, får jeg vist samtlige poster (det vil jeg ikke).
Hvordan opretter jeg en rapport, som kun viser de data, jeg vælger i min formular (via kombiboksen) ???
Avatar billede mugs Novice
20. december 2001 - 08:36 #1
Formularen må have en forespørgsel som postkilde. Rapporten har sandsynligvis samme postkilde. Du bliver nødt til i rapportens postkilde at indsætte et felt der bestemmer kriterierne for de poster, forespørgslen skal vise. Noget lignende dette:

=Forms!Formularnavn!Combo
Avatar billede mugs Novice
20. december 2001 - 08:46 #2
Kriteriet i forespørgslen skal indsættes i combo\'s kriteriefelt og se ud som:
[Forms]![formular2]![felt1]

Desuden skal du åbne rapporten fra formularen med en kommandoknap med flg. kode:
DoCmd.OpenReport \"rapport2\", acPreview, \"\", \"\"

Det er nødvendigt at åbne rapprten fra formularen, idet disse objekter har samme postkilde.derved fastholder du, at forespørgslen forbliver åben og beholder kriteriet mens rapporten åbnes.

Ovennævnt er lige afprøvet i Access97, og det virker.
Avatar billede nih Novice
20. december 2001 - 08:50 #3
Man kan også bruge rapportens filter:

DoCmd.OpenReport strRpt, acViewPreview
Reports(\"rptNavn\").Filter = \"felt = \" & combo
Reports(\"rptNavn\").FilterOn = True

Niels


Avatar billede nih Novice
20. december 2001 - 08:51 #4
DoCmd.OpenReport(\"rptNavn\"), acViewPreview
Reports(\"rptNavn\").Filter = \"felt = \" & combo
Reports(\"rptNavn\").FilterOn = True

Avatar billede dri Nybegynder
20. december 2001 - 09:20 #5
Jeg kan ikke rigtig få jeres forslag til at virke (måske gøre jeg et eller andet forkert !!)
Jeg har i min forespørgels i rækkekilden indsat følgende:

select distinct Bruger from tbl_PNRegistrer

I Efteropdatering har jeg følgende indsat:

Private Sub Kombinationsboks14_AfterUpdate()
If Me!Kombinationsboks14 = \"\" Then
  Me.FilterOn = False
Else
  Me.Filter = \"Bruger = \'\" & Me!Kombinationsboks14 & \"\'\"
  Me.FilterOn = True
End If
End Sub

Jeg er ikke den største haj til at det der foregår \"bagved\" access, så I må gerne være lidt præcise i jeres forklaring. TAK PÅ FORHÅND !!

Avatar billede mugs Novice
20. december 2001 - 11:02 #6
Du bruger tilsyneladende en kombination af et af dine tidligere spørgsmål med vores svar. Som udgangspunkt mener jeg, du bør vælge om du vil arbejde med det tidligere spørgsmål eller dette.

Jeg kan kun gentage mit svar, at det er afprøvet i Access97, og det virker.

I mit svar kan du i forespørgslen evt. benytte udtryksgeneratoren:

Vælg Formularer > alle Formularer > vælg den korrekte formular.

Derefter vælger du hvilket felt (kombinationsboksen) forespørgslen skal arbejde med. Tryk derefter på indsæt. Udtryksgeneratoren har nu indsat et kriterie i forespørgslen, der refererer til formularen.

Hvis du nu lukker forespørgslen og åbner rapporten, vil du ike få nogle poster vist, fordi formularen ikke er åben og forespørgslen ikke midtager data fra formularen. Det er derfor et krav, at du åbner formularen, vælger din post i kombinationsboksen og ved en kommandoknap åbner rapporten samtidig med, at formularen kører i baggrunden. Så vil forespørgslen beholde kriterierne og dermed overføres til rapporten.   
Avatar billede nih Novice
20. december 2001 - 11:59 #7
Private Sub Kombinationsboks14_AfterUpdate()
If Me!Kombinationsboks14 = \"\" Then
  Me.FilterOn = False
Else
  Me.Filter = \"Bruger = \'\" & Me!Kombinationsboks14 & \"\'\"
  Me.FilterOn = True
  DoCmd.OpenReport(\"rptNavn\"), acViewPreview
  Reports(\"rptNavn\").Filter = me.filter
  Reports(\"rptNavn\").FilterOn = True
End If
End Sub

Prøv at indsætte disse linjer i din kode og se om ikke det virker - \"rptNavn\" skal selvfølgelig udskiftes med det rigtige navn på din rapport.

Avatar billede nih Novice
20. december 2001 - 12:00 #8
koden skal nok have sin egen knap, men princippet er det samme som at sætte filter på din form.

Niels
Avatar billede nih Novice
20. december 2001 - 12:56 #9
tak - men fi kdu den hjælp du havde brug for ???

Hvis de 3 linjers kode virker, kan du lave en knap med flg. kode i vedklik hændelsen.

  DoCmd.OpenReport(\"rptNavn\"), acViewPreview
  Reports(\"rptNavn\").Filter = me.filter
  Reports(\"rptNavn\").FilterOn = me.filterOn

den åbener din rapport og sætter rapportens filter egnskaber lig med formens.

Niels

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