Avatar billede amtoft Novice
05. september 2002 - 20:08 Der er 20 kommentarer og
1 løsning

Anfordring af rapport

Jeg har tre tabeller med stamdata:
1: Elever
2: Spørgsmål
3: Dato m.v. for besvarelse

De "flettes" i en 4. tabel, hvor svaret til hvert spørgsmål også indsættes.

Derved kan jeg via en forespørgsel, hente data ud igen.

Men hvordan laver en en "anfordring" til en rapport, så jeg f.eks. kan angive at jeg kun vil se alle svar der er afgivet pr. xx-dato (fra tabel 3)
Eller jeg vil se alle svarene for en bestemt elev, uanset svardato.
Eller se alle elever der har svaret X i spørgsmål Y.
Eller blot alle besvarelser af spørgsmål Y.
(jeg tror I fatter det nu ... )

Jeg vil ikke mene det skal være nødvendigt at oprette en rapport for hver kombinationsmulighed - det vil jo give nærmest uendeligt mange.

Hvis vi er ude i noget VB-code, bedes I skære det ud i pap. Jeg har absolut ingen erfaring med programmering i VB.

Håber på noget hjælp.
Avatar billede nih Novice
05. september 2002 - 20:11 #1
du kan bruge egenskaben filter på din rapport når du åbner den fra en formular.
Avatar billede nih Novice
05. september 2002 - 20:16 #2
Private Sub btnAabenRpt_Click() 
    DoCmd.OpenReport "rptNavn", acViewPreview, , "[elev] = 7"
End Sub

på en form kan du have en knap til at åbne din rapport som vist herover.
arbejdet ligger i FilterDelen ("[elev] = 7"), den skal du bygge dynamisk vha lister, alternativknapper osv.

Niels
Avatar billede amtoft Novice
05. september 2002 - 20:21 #3
Fint nok med en formular - den havde jeg ikke selv tænkt over. (er ikke Access-bruger normalt).
Men hvis "resultatet" af denne filtrering skal udskrives ?
Avatar billede nih Novice
05. september 2002 - 20:26 #4
sætningen:
DoCmd.OpenReport "rptNavn", acViewPreview, , "[elev] = 7"
åbner rapporten rptNavn i VisUdskrift med kun elevnr 7

DoCmd.OpenReport "rptNavn", acNormal, , "[elev] = 7"
gør det samme - den udskriver bare med det samme

Niels
Avatar billede mugs Novice
05. september 2002 - 20:27 #5
amtoft > Din rapport skal have en postkilde, som normalt er en forespørgsel hvori feltet 2elev" skal indgå.

frit oversat betyder nih's svar:

Åbn rapporten "rptNavn" og udskriv til skærm visende alle poster hvor feltet "elev" er = 7
Avatar billede mugs Novice
05. september 2002 - 20:28 #6
Hej Niels, 2 måder at sige det samme på. Vagt igen?
Avatar billede nih Novice
05. september 2002 - 20:31 #7
ja :o(
Avatar billede nih Novice
05. september 2002 - 20:34 #8
amtoft >
Det er måske nemmere i din foresp. at skrive følgende i kriteriefeltet under elevNr: [indtast elevNr]
Så vil brugeren blive spurgt om elevnr når han åbner rapprten.
Det er en nem løsning, men ikke så fleksibel som en søgeformular, der kan være meget kringlet at få til at virke.

Niels
Avatar billede amtoft Novice
05. september 2002 - 20:43 #9
Niels -
Gider du forklare nærmere hvordan jeg skal gøre det dynamisk, evt. med flere faktorer ?
Avatar billede nih Novice
05. september 2002 - 20:44 #10
OK.
Hvad hedder feltet elev i din rapport og hvad type er det (tal eller tekst) ???
Avatar billede amtoft Novice
05. september 2002 - 20:47 #11
Jeg har lavet et autonummerfelt som hedder ElevID(langt heltal) og to tekstfelter der hedder Fornavn + Efternavn.

(Det må gerne ende med at være fleksibel. Det er min hustru der skal bruge det .... - og jo bedre det er lavet fra starten, jo mere fred får I / jeg :-))
Avatar billede nih Novice
05. september 2002 - 20:49 #12
opret en ny form og lav en liste der bygger på tabellen elever MED elevId som første kollone.
Avatar billede nih Novice
05. september 2002 - 20:50 #13
listen skal navngives: lstElever

herefter opretter du en knap med navnet: btnUdskriv
Avatar billede nih Novice
05. september 2002 - 21:15 #14
amtoft > Hvor langt er du nået

på kanppen btnUdskriv opretter du en hændelse (vedKlik) - placer markøren i tekstfeltet og klik på knappen til højre med de 3 prikker og vælg kodegenerator.

copy/paste denne kode ind:
Private Sub btnUdskriv_Click()
    Dim strWhere As String
   
    If lstElever = "" Or IsNull(lstElever) Then
      'Hvis listen er Tom
      strWhere = ""
    Else
      'Hvis et element er markeret på listen
      strWhere = "[elevId] = " & lstElever
    End If
    'Vis udskrift
    'Udskift rpt med dit rapport navn
    DoCmd.OpenReport "rpt", acViewPreview, , strWhere
   
End Sub

Niels
Avatar billede amtoft Novice
05. september 2002 - 21:22 #15
Jeg er med ..
Men jeg kan ikke udvælge én elev ...
Tror det hænger sammen med forkert formular-type.
Liste ?
Hvis jeg vælger "Dataark" kan jeg jo ikke sætte en knap ind.
Avatar billede nih Novice
05. september 2002 - 21:27 #16
Nej - en alm. form i formular visning.

vha værktøjskassen indsætter du et listeelement og følger guiden, den hjælper dig med at fylde værdier fra tabellen elever idn i listen.
Avatar billede nih Novice
05. september 2002 - 21:34 #17
din form skal være 'ubunden', den skal altså ikke bygge på nogen tabel eller foresp.

Det er også noget af et projekt, med søgeformular når man er nybegynder :o)
Avatar billede amtoft Novice
05. september 2002 - 21:40 #18
Hmm .. tror jeg også den er. (på egenskaber for formen står der på fanen data: "postkilde" (blank)
Har fået listen sat ind, så den viser de forskellige elever.
Kan også markere en i listen, men udskriften viser alle elever.

Projekt - tjaa, ved hvordan det hurtigt kunne laves i Navision, men det er ikke helt lige programmet til det her ;-)
Avatar billede amtoft Novice
05. september 2002 - 21:47 #19
FUNDET !
Havde givet selve formen navnet lstElever, og ikke listen på formen.
Så virker det !
Avatar billede nih Novice
05. september 2002 - 22:13 #20
tillykke

Du kan så prøve at sætte flere kriterier ind på din søgeform vha variablen strWhere

strWhere = "([elevId] = 7) AND ([dato] between(#2002-8-20# AND #2002-9-10#))"

Det kan være noget af et puslespil at få alle kriterier med.

Niels
Avatar billede amtoft Novice
05. september 2002 - 22:20 #21
Ja, det kan jeg forestille mig,
Prøver lige nu at kombinere to "lister".
En med elever og en anden med spørgsmålID.

Jeg er rigtig glad for hjælpen så langt ...
(men er selvfølgelig modtagelig for mere)
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