Avatar billede fimo Seniormester
15. august 2003 - 11:19 Der er 13 kommentarer og
2 løsninger

iff sætning

Jeg har behov for lidt hjælp til en "iif" sætning.
Jeg er nået så langt som denne linie
Expr1: IIf([T_export flytider]![flight] Like "ba*";"0,30";"0,50")......
MEN den skal også ændre dem med feks
"tk*";"0,10";"0,30" eller "lx*";"0,15";"0,25"
Hvordan skriver man det i en iff sætning?
samt hvordan undgår jeg at access spør mig
om "enter parameter value" udtryk1, når jeg køre ovennævnte formel?
Avatar billede overchord Nybegynder
15. august 2003 - 11:59 #1
Saa skal du laege flere iif-saetninger sammen. Problemet her er at du har to udsagn for hvert kriterie. I din saetninger skriver den 0,30 hvis det er et ba flight og ellers 0,50. Du er noedt til at enten have to kriterier for ba-fly eller kun et sandt kriterie, eller vil den saetningen ligegyldigt hvilken anden fly-afgang altid skrive 0,50 for ikke-ba fly.
Avatar billede fimo Seniormester
15. august 2003 - 12:14 #2
Har du en løsning til hvordan sådan "flere iif" sætninger
kan se ud ?
Ville det gøre det lettere hvis "sandt" = forskellige parameter
MEN "falsk" ville være det samme feks 0,50 ???
Avatar billede overchord Nybegynder
15. august 2003 - 12:31 #3
jeps, saa kan det godt lade sig goere f.eks:

iif([T_export flytider]![flight] Like "ba*";"0,30"; iif([T_export flytider]![flight] Like "tk*";"0,10";iif([T_export flytider]![flight] Like "lx*";"0,15";"0,50")))

Nu tjekker den for de tre flytyper, og hvis ingen af dem findes skrives 0,50

Alternativt hvis du har en ekstra variabel sand/falsk for hver type flyafgang skal der endnu flere saetninger paa, saaledes at:

iif ([T_export flytider]![flight] Like "ba*";iif(Dinvariable=True;"0,30";"0,50"); iif ([T_export flytider]![flight] Like "tk*";iif(Dinvariabel=True;"0,10";"0,30");iif ([T_export flytider]![flight] Like "lx*";iif(Dinvariabel = True;"0,15";"0,25");"Ingen Fly")))

Haaqber det hjaelper lidt
Avatar billede fimo Seniormester
15. august 2003 - 13:50 #4
Det hjalp mig meget MEN nu hvor jeg bruger den første formel i
min forespørgelse, og så når jeg regner videre og har en 1.kollonne
der hedder feks tid=12,40 minus resultatet af ovennævnte formel
i nr 2 kollonne feks 0,50, så skriver den nu = 00,40 ?????
istedet for 11,50 i 3 kollonne?????
skal nok gi lidt flere point for hjælp :o)
Avatar billede sjap Praktikant
15. august 2003 - 14:46 #5
Undskyld jeg lige blander mig, men så vidt jeg lige kan se, så er resultatet fra iif formlen en streng og ikke et tal - og så er det ikke lige til at regne med. Hvis det er tal du skal bruge, så skal du fjerne alle " omkring tallene.
Avatar billede fimo Seniormester
15. august 2003 - 15:02 #6
>superjap, skal jeg forstå det således at jeg skal fjerne " i den
kollonne hvor jeg har resultatet af iif udregningen ?
Expr1: IIf([T_Export flytider]![FLIGHT] Like "BA 81*";0,25;0,5)
0,25 = 25 min og 0,5 = 50 min
men det resultat jeg får frem er 12,00 ?????
Avatar billede overchord Nybegynder
15. august 2003 - 15:13 #7
Ja superjap har ret - der sker noget med formatet i saetningen. Men siden der er tidspunkter/klokkelset vi snakker om bliver det endnu mere tricky.
Du skal nok erstatte kommaer med kolon for at faa de til at virke.

Du kan muligvis derefter bruge Datediff("hhmm",kolonne1, kolonne2)
Avatar billede sjap Praktikant
15. august 2003 - 15:14 #8
Hvis tallene er formateret til klokkeslet kan du skrive:
Expr1: IIf([T_Export flytider]![FLIGHT] Like "BA 81*";#0:15#;#0:30#)
Avatar billede sjap Praktikant
15. august 2003 - 15:17 #9
Nu tror jeg at jeg forstår noget af det:

Altså kl. 12:40 minus ½ time skal give kl. 11:50

Den var altså lang tid om at sive ind her! Det skyldes nok at jeg ALDRIG har set 12:40 skrevet som 12,40 :-)
Avatar billede fimo Seniormester
15. august 2003 - 15:19 #10
>superjap- det løste mit problem :o)
gider du ikke lige smide et svar så jeg kan gi' dig + "overchord"
jeres meget velfortjente point og en STOR TAK for jeres hjælp.
NU bliver det en dejlig weekend :o)
Avatar billede sjap Praktikant
15. august 2003 - 15:21 #11
Selv god weekend
Avatar billede Jørgen Kirkegaard Professor
15. august 2003 - 15:21 #12
Undskyld at jeg også blander mig, men det ligner et skråplan, hvor du måske hellere skulle slå svarene op i nogle faste tabeller. Derved vil du også undgå 2. halvdel af dit problem, at Access beder om "parameter value <udtryk1>".
Avatar billede overchord Nybegynder
15. august 2003 - 15:24 #13
Godt at det hjalp! Staticdata- har lidt ret. Det kan hurtigt blive rodet hvis databasen bliver stor og du skal ind og rette mange beregniner i queries hver gang noget aendres. Dette kna undgaas ved at have en tabel med tiderne for ba, tk og lx afgange.

Men go weekend da!
Avatar billede fimo Seniormester
15. august 2003 - 15:25 #14
>staticdata, jeg nåede desvære ikke at se dit svar før jeg havde accep. svaret MEN af en eller anden årsag, så spør den ikke om
det med value parameter, så jeg håber ikke at det gir mig et problem
senere ellers må jeg rode lidt med det og så oprette et nyt spørgsmål HVIS det ikke lykkedes mig at fixe det :o)
Avatar billede Jørgen Kirkegaard Professor
15. august 2003 - 15:26 #15
Fint, jeg nåede jo heller ikke at se din accept. No affence...
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