Een IIF functie in een query

Status
Niet open voor verdere reacties.

Jesse2

Gebruiker
Lid geworden
3 mei 2011
Berichten
340
Ik heb in mijn query twee werkende velden die beide een prijs ophalen nu wil ik graag één veld maken waar één van de twee velden in word getoond, dit verschild per record.
Wanneer welke veldwaarde moet worden getoond word aangegeven door een aanduiding in een ander veld.
Ik had zelf al het idee om dit met een iif functie te gebruiken maar ik kom er maar niet uit.

AutoPrijs: IIf([Orders.K/C] = "C",[QPrijzen.CPrijs]), IIf([Orders.K/C] = "K", [QPrijzen.KPrijs])

er word gekeken of tekstveld Orders de waard "C" of de waarde "K" heeft, op basis van die bevinding moet hij de waarde uit het juiste veld halen.
 
Je hebt, als het veld [K/C] maar twee waarden bevat (C en K) maar één IIF nodig. Tenzij er dus andere waarden mogelijk zijn, of het veld leeg kan zijn. Verder moet je, als je de tabelnaam meeneemt in de formule (wat maar heel zelden nodig is) dat wel op de correcte wijze doen, dat doe je ook niet. Dus de volgende varianten:
Code:
AutoPrijs: IIf([K/C] = "C",CPrijs, KPrijs)
Variant met twee IIF's:
Code:
AutoPrijs: IIf([Orders].[K/C] = "C",[QPrijzen].[CPrijs]), IIf([K/C] = "K", [KPrijs],"")
 
Bedankt voor je voorbeelden, ik zit echter met nog een probleem
Dit had ik toen ik zelf codes van forums probeerde ook hij springt iedere keer naar de eerste comma van de expressie en geeft een error dat de syntax ongeldig is en dat ik een ongeldig teken of ongeldige comma heb opgegeven.
Hoe zou dit kunnen komen? ik heb expressie op verschillende manieren ingevoerd, met de tabelnamen,zonder tabelnamen, en de code met de twee IIF's, steeds geeft hij deze zelfde error en selecteerd hij de eerste comma van de expressie.
 
Als je de expressie met de Expression Builder had gemaakt, had je geen verkeerde scheidingstekens gezien. Blijkbaar heb je de code overgenomen en niet opnieuw opgebouwd. Dat verklaart overigens ook de foute veld- en tabelnamen. Dat kan namelijk niet als je de Builder gebruikt. Als scheidingstekens kun je de komma gebruiken (in Amerika standaard) of de puntkomma (;) die bij ons gebruikelijk is. 50% kans dat je de verkeerde gebruikt. Gezien de foutmelding, kun je dat percentage naar 100 opschroeven :)
Nogmaals: gebruik de Expression Builder als je niet gewend bent om functies in elkaar te flanzen, dan maak je veel minder fouten.
 
Laatst bewerkt:
Hoera het werkt! er bedankt, Ik zal voortaan de Expression Builder wat meer gebruiken
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan