Avatar billede adan Nybegynder
15. juli 2004 - 13:50 Der er 9 kommentarer og
1 løsning

Automatisk tilføjelse til forespørgsel

Jeg har en forespørgsel som indeholder et beløbsfelt. Problemet er at dette felt både indeholder dkk og euro beløb alt efter hvilket år posten indeholder.

Jeg vil derfor gerne lave en forespørgsel som bygger på denne oprindelige forespørgsel, men som så opretter et nyt felt og tildeler det værdien EUR eller DKK alt efter indholdet om feltet aar er før eller efter 2003.

Nogle ideer?
Avatar billede terry Ekspert
15. juli 2004 - 14:12 #1
You could try
In the query make a new column

Mont:iif(Year([dateField]) <= 2003; "dkk" ;"Euro")
Avatar billede terry Ekspert
15. juli 2004 - 14:13 #2
I am assuming that you have a date field named dateField in your table.
Avatar billede tolveren Nybegynder
15. juli 2004 - 14:21 #3
Du kan i din forespørgsel oprette et udtryk. I udtrykket spørger du om "År" er større end f eks 2000, så er variablen enten sand eller falsk. Hvis sand så = 1 ellers 0. Lav derefter et nyt udtryk, som Spørger om dit første udtryk er = 1. hvis ja så multiplicer med kursen. Hvis falsk så multiplicer med 1. Nu har du et beregnet felt hvor alle tal = Dkr.
Syntaksen her på udtryk 1.

Blb_Dkr_eller_EUR_betingelse: IIf([År]> 2000;1;0)

Udtryk 2.

Beløb i kr: IIf([Blb_Dkr_eller_EUR_betingelse]= 1;[Blb_Dkr_eller_EUR_betingelse]*9/100;[Blb_Dkr_eller_EUR_betingelse]*1)
Avatar billede adan Nybegynder
15. juli 2004 - 14:22 #4
Det ser ud til at kunne bruges, men jeg får bare fejl som værdi når feltet udføres.
Jeg skal lige tilføje at dateField-feltet ikke kun rummer år, men har eks. følgende opbygning "118/2003". Kan det betyder at "Year" giver fejl?
Avatar billede terry Ekspert
15. juli 2004 - 14:22 #5
If you are using English regional settings the you may need to alter ; to ,
Avatar billede terry Ekspert
15. juli 2004 - 14:23 #6
Yes it will because 118/2003 is NOT a date field

Try
Mont:iif(Right([dateField];4) <= 2003; "dkk" ;"Euro")
Avatar billede adan Nybegynder
15. juli 2004 - 14:24 #7
Feltet skal ikke bruges til at omregne kursen, men blot til at sætte korrekt etiket på udskrevne rapporter. Det er derfor ikke nødvændigt at omregne :-)
Avatar billede terry Ekspert
15. juli 2004 - 14:25 #8
And you may need to use

Mont:iif(Cint(Right([dateField];4)) <= 2003; "dkk" ;"Euro")
Avatar billede adan Nybegynder
15. juli 2004 - 14:31 #9
Det virkede uden "cint". Tak for hjælpen! Jeg havde aldrig regnet Right([x];4) ud selv! :-)

Bare lige for at være nysgerrig... Hvad gør cint?
Avatar billede terry Ekspert
15. juli 2004 - 14:33 #10
C onvert to INT

og tak
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