docmd.openreport filtrering

Tags:    visual-basic

Jeg har ofte et ønske om at kunne printe en rapport, som viser nogle data, alt efter hvilke værdi brugeren vælger. Jeg har forsøgt at gøre følgende:

Oprette en formular med en listebox, som viser nogle forskellige værdier som en bruger så skal vælge en af. Listboxen hedder "ListPrøveTypeValg". På formularen har jeg så lavet en knap og lavet følgende kode til knappen

Private Sub CmdPrintRapport_Click()

Dim valg As String

valg = ListPrøvetypeValg

DoCmd.OpenReport "FFordeltAntalTotalt", acPreview, , "set prøvetype" = valg

Prøvetype er det felt jeg gerne vil have filtreret på. De værdier der vises på den endelige rapport, skal kun være de værdier der svarer til variablen "Valg", som kommer fra min listbox. Jeg har prøvet med placering af ' og " div. steder men det virker ikke helt. Er der en der ved hvad jeg gør galt ?????





1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Den 4. parameter i OpenReport er en WHERE-clause, d.v.s. at den er en tekststreng som indeholder en del af en SQL-sætning. Syntaksen er afhængig af, om det felt, du filterer på er et tal eller en tekst.
Hvis det er et tal, skal den f.eks. se således ud:
prøvetype = 4
Hvis det er en tekst, bliver det med " "
prøvetype = "ABC"

Så du kunne gøre det således, hvis prøvetype er et tal:

valg = "prøvetype = " & ListPrøvetypeValg
DoCmd.OpenReport "FFordeltAntalTotalt", acPreview, , valg

og således, hvis prøvetype er en tekst:

valg = "prøvetype = " & chr$(34) & ListPrøvetypeValg & chr$(34)
DoCmd.OpenReport "FFordeltAntalTotalt", acPreview, , valg

(chr$(34) er et dobbelt-anførselstegn " angivet ved sin ascii-kode)




t