Avatar billede nird Nybegynder
29. januar 2004 - 20:20 Der er 10 kommentarer og
1 løsning

Kalde en rapport med en variabel

Har lavet en rapport der kalder flere sql-forespørgsler. Disse sql-forespørgsler skal også kaldes med en variabel. Denne variabel går igen i flere af sql-forespørgslerne.
Mit spørgsmål er så om man kan kalde en rapport med en variabel som de forskellige sql-forespørgsler kan bruge?
Avatar billede terry Ekspert
29. januar 2004 - 20:26 #1
Dim stDocName As String
   
 
    stDocName = "rpt1"
    DoCmd.OpenReport stDocName, acPreview, , "Somefield = 1"
Avatar billede terry Ekspert
29. januar 2004 - 20:28 #2
You use the where paramater to do this when you open the report. Its is the same as "...WHERE Somefield = 1" in you SQL.
Avatar billede terry Ekspert
29. januar 2004 - 20:30 #3
If you cant use this then I think you may need to explain what you mean by "rapport der kalder flere sql-forespørgsler". Normally a report is based either on a table or a query but I'm not quite sure what you mean when you say that the report CALLS the query!
29. januar 2004 - 22:44 #4
Når du siger "variabel", mener du så en variabel i programmerings-forstand (Dim A as String...)? Eller er det blot et kriterie, du snakker om?

Hvis det virkelig er en variabel, så kan du lave en funktion, som returnere værdien af denne variabel, således at den kan bruges i forespørgsler og dermed også i rapporter.

Public Function GetVariabel1 as String
  GetVariabel1 = Variabel1
End Function

Herefter kan du bruge GetVariabel1 som kriterie i foresørgslerne.

Men som Terry, er jeg ikke helt sikker på hvad du mener??
Avatar billede nird Nybegynder
30. januar 2004 - 13:01 #5
Ok, mener nokm ikke i programmerings forstand.

Har nogle sql-forespørgsler, hvor jeg har nogle variabler der ikke er angivet i tabellen. F.eks:
[...WHERE år=variabel...] År er fra tabellen, variabel er ikke defineret, så der kommer en boks op, hvor man skal indtaste året.

I min rapport har jeg så flere sql-forespørgsler, hvor den for hver forespørgsel popper op og spørger efter året.

Så mit spørgsmål er hvordan jeg kan lave det så jeg kan skal indtaste året én gang og ikke f.eks 6 gange...

Håber I kan hjælpe
Avatar billede pc-gram Nybegynder
30. januar 2004 - 13:39 #6
Jeg plejer at gøre det på den måde, at jeg har en formular, som går igen gennem hele applikationen. Det kan enten være en hovedmenu, eller en skjult formular til formålet.
Jeg starter så med at prompte brugeren for parametre via en lille pop-up dialogboks, og når brugeren trykker OK, kopierer jeg værdierne over i nogle usynlige tekstbokse i fx. hovedmenuen. De forskellige forespørgsler, der trækker rapporterne, bruger så de variable (tekstbokse), som der ligger på fx hovedmenuen, som parametre.
Avatar billede nird Nybegynder
30. januar 2004 - 13:44 #7
ok, men hvordan får du forespørgslerne til at bruge de variabler du har angivet i tekstboksene?

(Jeg mestrer ikke VB)
Avatar billede terry Ekspert
30. januar 2004 - 18:15 #8
You make a form with fields where you can enter your parameters. You can also add a button using the button wizard which opens the report. Now in the queries you alter the criteria (variables) so that instead of having to enter them they are taken from the from. If you open one of the queries in design view and then right click with the mouse in one of the criteria fields you will see "Build". Choose this to open the expression builder. Now you need to find the form and field you want to use for this criteria.

It will look something like this
Forms!frmReport!DateField

You do this for each of you queries/crieteria
Avatar billede nird Nybegynder
30. januar 2004 - 18:48 #9
Thanx
Avatar billede terry Ekspert
30. januar 2004 - 19:40 #10
If your happy with the answer then you should accept !
Avatar billede terry Ekspert
01. februar 2004 - 10:24 #11
selv ThanX :o)
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