Avatar billede jensch Nybegynder
26. oktober 2004 - 10:01 Der er 17 kommentarer og
1 løsning

Filter på underliggende forespørgsel hvordan?

Jeg har en formular som viser data fra en forespørgsel som er sammesat at 2 krydstabuleringsforespørgelser. Problemet er at der kun kommer korrekt visning hvis der fitreres på et felt i den ene underliggende forespørgsel. Hvis det gøres i forespørgselen der er baggrund for formularen får jeg ikke korrekt visning af data som jeg vil ha det.
Hvis jeg laver knapper i formularen med filtre, fitreres der i samleforespørgslen. Jeg har også prøvet at at sætte kriterier i den underliggende forespørgsel på baggrund af et tekstfelt, med det kan man åbenbart ikke i en krudstabuleringsforespørgsel. Hvad gør jeg?
26. oktober 2004 - 10:06 #1
Du burde godt kunne refererer til en tekstboks på en formular i din krydstabulering. Men måske skal du blot op i menuen Forespørgsler->paramtere og angive din reference:
Forms!DinFormular!Dittekstfelt
Avatar billede jensch Nybegynder
26. oktober 2004 - 10:23 #2
Jeg har ikke prøvet at benytte parametre før. Hvordan angiver man hvilket felt det drejer sig om i forespørgelsen? Hvis jeg skriver som du skriver kommer der en fej om at der er brugt ugyldig kantede pareteser om kring navnet, selvom jeg ikke har brugt kantede parenteser!
26. oktober 2004 - 10:26 #3
Hmm, der skal nok være kantede parenteser...du skal jo stadig have kriteriet med inde i forespørgslen.

Kan du indsætte SQL'en som den ser ud nu?

Og skrive hvordan referencen til dit felt ser ud.

Så skal jeg se, om jeg kan lave SQL'en direkte her.
Avatar billede jensch Nybegynder
26. oktober 2004 - 10:30 #4
Jeg har fået det til at virke nu. Det skal bare være det samme udtryk i parametre og i kriterier
26. oktober 2004 - 10:31 #5
ja, det var vist det, jeg prøvede at sige ;o)
26. oktober 2004 - 10:54 #6
Husk at lukke spm, hvis du har fået løst problemet :o)
Avatar billede jensch Nybegynder
26. oktober 2004 - 12:35 #7
Kan man benytte en variabel istedet? I så fald hvad skriver man i kriterier i forespørgslen?
26. oktober 2004 - 12:38 #8
Du kan ikke umiddelbart bruge varibler i en forepørgsel. Så skal du først lave en public function, som returnere værdien af variablen. Denne funktion, kan du så bruge i forespørgslen.
Avatar billede jensch Nybegynder
26. oktober 2004 - 12:44 #9
Ok jeg har en variabel der indeholder måned, jeg har kald den for MD. Jeg har lavet et modul der deklarere variablen. Hvordan lave jeg så denne public function?
26. oktober 2004 - 12:46 #10
I et modul (f.eks. det samme) indsætter du så f.eks. denne kode:

Public Function GetMD()
    GetMD = MD
End Function

Herefter er det GetMD() du bruger i forespørgslen.
Husk parenteserne ()!
Avatar billede jensch Nybegynder
26. oktober 2004 - 13:06 #11
jamen... det er jo kanon. Når nu du er så skrap, kan du så ikke lige fortælle mig en ting. Jeg har opdaget at man kan kovetere macroer til moduler. Hvis jeg har en knap der køre en macro, men nu i stedet skal køre det et modul hvad skal koden DoCmd.RunMacro stDocName så rettes til?
26. oktober 2004 - 13:10 #12
Så skriver du bare navnet på den funtion, som Acces har genereret til dig.

Altså f.eks.:

Private Sub cmdKnap_click()
    DinMakro
    'eller Call DinMakro
End sub
Avatar billede jensch Nybegynder
26. oktober 2004 - 13:15 #13
Ok jeg synes bare ikke de jeg kan ændre navene på de moduler jeg får. De hedder konveteret makro .... Det ville være rart om kunne ændre dette, så det ikke er så lange navne at referere til.
26. oktober 2004 - 13:18 #14
modulnavnene er ligegyldige. Det er det navn, som står efter Public Function, som du skal referere til. Og det kan du bare ændre, som du vil
Avatar billede jensch Nybegynder
26. oktober 2004 - 16:27 #15
Jeg kan ikke Acceptere, jeg lander bare samme sted igen.
Avatar billede jensch Nybegynder
28. oktober 2004 - 12:26 #16
Hvis man bruger GetMD() som kriterie i en forespørgsel svare en tom variabel ikke til ingen kriterier. Det betyder at man ikke kan få vist alle poster, men derimod får ingen poster vist. Hvordan kan jeg få alle måneder vist når GetMD står som kriterier
28. oktober 2004 - 12:31 #17
hmm, ja hvis MD kan være tom, så vil du ikke få nogen poster, da det svarer til, at du skriver: Måned = null
Og det er der formentlig ingen poster, som opfylder.

I dit kriterie, kan du i stedet prøve at skrive:

Like nz(GetMD();"*")

Det tror jeg, virker...måske...muligvis... ;o)
Avatar billede jensch Nybegynder
28. oktober 2004 - 12:44 #18
Det er helt perfekt, man giver så bare variablen værdien "*" så får man igen vist alle posterne, og den viser endda også alle poster når variblen fra starten er tom.
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