Hej, Från: http://www.techonthenet.com/access/functions/advanced/switch.php Tack för info.Konvertera SQL till MS Access SQL (CASE, WHERE)
någon här som kan "översätta" denna SQL-kod till kod som fungerar med MS Access 2003/7.
Göran
- - - - -
UPDATE
tblA, tblB
SET
credit =
(CASE
WHEN credit >= credit3 THEN credit4
WHEN credit >= credit2 THEN credit3
WHEN credit >= credit1 THEN credit2
ELSE credit1
END)
WHERE
tblB.SupplierID = tblA.SupplierID AND tblA.ClientID = 6Sv: Konvertera SQL till MS Access SQL (CASE, WHERE)
Titta även på sidan från länken ovan så ser du grafisk bild över query editorn och hur använda switch.
// Lycka till.
"In Access, the Switch function evaluates a list of expressions and returns the corresponding value for the first expression in the list that is TRUE.
The syntax for the Switch function is:
Switch ( expression1, value1, expression2, value2, ... expression_n, value_n )
expression1, expression2, expression_n is a list of expressions that are evaluated. The Switch function is looking for the first expression that evaluates to TRUE.
value1, value2, ... value_n is a list of values. The Switch function will return the value associated with the first expression that evaluates to TRUE.
For example:
Switch (SupplierID=1, "IBM", SupplierID=2, "HP", SupplierID=3, "Nvidia")
In this example, if the SupplierID field is 1, then the Switch function will return "IBM".
If the SupplierID field is 2, then the Switch function will return "HP".
If the SupplierID field is 3, then the Switch function will return "Nvidia".
"Sv:Konvertera SQL till MS Access SQL (CASE, WHERE)
Kunde inte hitta SWITCH kommandot när jag letade i SQL manualen, men ser nu
att det finns som ord i MS Access Basic hjälpen - och det fungerar tydligen även
i en SQL fråga. Så nu vet jag det ;-)
I ett annat forum fick jag ochså hjälp och med ledning av den hjälpen har jag kommit
fram till (har provat) att följande kod fungerar.
Ursäkta att jag trixade till det hela med 2 tabeller i frågan. Det skulle ju bara vara1.
Nåväl, här är fungerande kod:
UPDATE
tblA
SET
credit =
IIf([Credit] >=[credit3],[credit4],
IIf([Credit]>=[credit2],[credit3],
IIf([Credit]>=[credit1],[credit2],
[credit1])));