Avatar billede akr Nybegynder
01. maj 2001 - 15:20 Der er 7 kommentarer og
2 løsninger

Sætningen IF...THEN..ELSE i forespørgsel

kan man lave IF..THEN..Else...sætninger i et udregningsfelt i en forespørgsel - hvor der udregnes på enmåde hvis Felt1=A og en anden måde hvis Felt1=B
Avatar billede janbangm Nybegynder
01. maj 2001 - 15:26 #1
Der er en kommando der kan bruges i forespørgsler der IIf. Den returnere et hvis et udsagn er sand og noget hvis der er falsk. Prøv at kikke under hjælp. Jeg tror du kan bruge den. \'

Ellers kan du selv lave en funktion i VB også bruge den

Avatar billede proaccess Nybegynder
01. maj 2001 - 15:28 #2
Ja, ved at bruge IIF, hvor du først angiver kriterie, derefter værdi ved sand og sidst værdi ved falsk

=IIf([Felt1]=\'A\';12;78)

Her vil værdien være 12, hvis dit Felt1 er \'A\' og ellers 78...
Det er også muligt at indlejre flere IIF\'er i hinnanden, og derved få flere end 2 mulige udfald.

=IIf([Felt1]=\'A\';12;IIf([Felt1]=\'B\';13;78))

Her er resultatet 12 hvis A, 13 hvis B og ellers 78.
Avatar billede terry Ekspert
01. maj 2001 - 15:30 #3
This example uses the IIf function to evaluate an OrderAmount field and returns the word \"Large\" if the amount is greater than 1000; otherwise, it returns the word \"Small\".

MyField:IIf([OrderAmount] > 1000, \"Large\", \"Small\")
Avatar billede terry Ekspert
01. maj 2001 - 15:34 #4
You will most probably have to replace the double quotes with singe IE
MyField:IIf([OrderAmount] > 1000, \'Large\', \'Small\')
Avatar billede terry Ekspert
01. maj 2001 - 15:38 #5
Hi proaccess!

I dont think your syntax is correct if you use =IIF ... in your query.

terry
Avatar billede proaccess Nybegynder
02. maj 2001 - 07:29 #6
>Terry: The syntax is from the query design-window, of cause one will have to use , instead of ; in the raw SQL-version, but I certenly think that\'s the one thing, You can put against my example... (if not my english spelling)

The =\'sign disapears by entering, I could return the \"complaint\" by claming that your example would fail because \'Myfield:\' is part of the syntax...

Avatar billede terry Ekspert
02. maj 2001 - 08:14 #7
Hi proaccess!
Your English is fine.

Nothing wrong with \'Myfield:\' it produces a row with the name \'Myfield\' showíng the return value of the IIF. IE same as>
SELECT IIf([field1]=1,\'A\',\'B\') AS Myfld
FROM Table1;
and in query design>Myfld:IIf([field1]=1,\'A\',\'B\')
Avatar billede proaccess Nybegynder
02. maj 2001 - 08:18 #8
>Terry: Yes, but \'MyField:\' has nothing to do with the IF-THEN-ELSE structure... ;-)

Avatar billede akr Nybegynder
02. maj 2001 - 08:50 #9
Tusinde tak - det var en kæmpe hjælp !
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