Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de "IFF"

3 réponses
Avatar
Verreux Pierre
Bonjour, j'ai créer une procédure stockée de ce type (ACCESS 2003) :
ALTER PROCEDURE ProcédureStockée1
(
@num_bon int,
@var1 real,
@var2 real
)
AS
SET NOCOUNT ON
UPDATE dbo.poids_reels
SET Adj1 = @var1
WHERE (NrBon = @num_bon) UPDATE dbo.poids_reels
SET Adj1 = @var2
WHERE (NrBon = @num_bon) AND (Pesage = 2)
RETURN
Comme vous le voyez, j'envoie deux update consécutivement (en réalité,
ce devrait-être 6), dans la documentation ou les forum,j'ai lu qu'il était
possible de travailler avec "IFF" un peu comme "SELECT CASE" en VBA (ACCES
NE RECONNAIT PAS "CASE" en SQL). Je
n'arrive pas a écrire le code correctement, pouvez vous m'aider ?
Merci.

3 réponses

Avatar
Patrice
Bonjour,

La doc du CASE est là :
http://msdn.microsoft.com/fr-fr/library/ms181765.aspx

Cela pourrait donner qq chose comme :

UPDATE dbo.poids_reels
SET Adj1 = CASE WHEN Pesage=2 THEN @var2 ELSE @Var1 END
WHERE (NrBon = @num_bon)

--
Patrice

"Verreux Pierre" a écrit dans le message de
groupe de discussion :
Bonjour, j'ai créer une procédure stockée de ce type (ACCESS 2003) :
ALTER PROCEDURE ProcédureStockée1
(
@num_bon int,
@var1 real,
@var2 real
)
AS
SET NOCOUNT ON
UPDATE dbo.poids_reels
SET Adj1 = @var1
WHERE (NrBon = @num_bon) UPDATE dbo.poids_reels
SET Adj1 = @var2
WHERE (NrBon = @num_bon) AND (Pesage = 2)
RETURN
Comme vous le voyez, j'envoie deux update consécutivement (en réalité,
ce devrait-être 6), dans la documentation ou les forum,j'ai lu qu'il était
possible de travailler avec "IFF" un peu comme "SELECT CASE" en VBA (ACCES
NE RECONNAIT PAS "CASE" en SQL). Je
n'arrive pas a écrire le code correctement, pouvez vous m'aider ?
Merci.





Avatar
Verreux Pierre
Merci Patrice, je creuse dans cette direction.
"Patrice" <http://scribe-fr.blogspot.com/&gt; a écrit dans le message de
news:%
Bonjour,

La doc du CASE est là :
http://msdn.microsoft.com/fr-fr/library/ms181765.aspx

Cela pourrait donner qq chose comme :

UPDATE dbo.poids_reels
SET Adj1 = CASE WHEN Pesage=2 THEN @var2 ELSE @Var1 END
WHERE (NrBon = @num_bon)

--
Patrice

"Verreux Pierre" a écrit dans le message


de
groupe de discussion :
> Bonjour, j'ai créer une procédure stockée de ce type (ACCESS 2003) :
> ALTER PROCEDURE ProcédureStockée1
> (
> @num_bon int,
> @var1 real,
> @var2 real
> )
> AS
> SET NOCOUNT ON
> UPDATE dbo.poids_reels
> SET Adj1 = @var1
> WHERE (NrBon = @num_bon) UPDATE dbo.poids_reels
> SET Adj1 = @var2
> WHERE (NrBon = @num_bon) AND (Pesage = 2)
> RETURN
> Comme vous le voyez, j'envoie deux update consécutivement (en


réalité,
> ce devrait-être 6), dans la documentation ou les forum,j'ai lu qu'il


était
> possible de travailler avec "IFF" un peu comme "SELECT CASE" en VBA


(ACCES
> NE RECONNAIT PAS "CASE" en SQL). Je
> n'arrive pas a écrire le code correctement, pouvez vous m'aider ?
> Merci.
>
>
>



Avatar
Verreux Pierre
Grace à Patrice, j'ai résolu le problème comme suit :
ALTER PROCEDURE ProcédureStockée1
(
@num_bon int,@var1 real,@var2 real,@var3 real,@var4 real,@var5 real,@var6
real
)
AS
SET NOCOUNT ON
UPDATE dbo.poids_reels
SET Adj1 = CASE WHEN Pesage=1 THEN @var1 WHEN Pesage=2 THEN @var2 WHEN
Pesage = 3 THEN @var3 WHEN Pesage=4 THEN @var4 WHEN Pesage=5 THEN @var5 ELSE
@Var6 END
WHERE (NrBon = @num_bon)
RETURN
ça fonctionne, si ça peux servir....
Merci Patrice.

"Verreux Pierre" a écrit dans le message de
news:
Bonjour, j'ai créer une procédure stockée de ce type (ACCESS 2003) :
ALTER PROCEDURE ProcédureStockée1
(
@num_bon int,
@var1 real,
@var2 real
)
AS
SET NOCOUNT ON
UPDATE dbo.poids_reels
SET Adj1 = @var1
WHERE (NrBon = @num_bon) UPDATE dbo.poids_reels
SET Adj1 = @var2
WHERE (NrBon = @num_bon) AND (Pesage = 2)
RETURN
Comme vous le voyez, j'envoie deux update consécutivement (en réalité,
ce devrait-être 6), dans la documentation ou les forum,j'ai lu qu'il était
possible de travailler avec "IFF" un peu comme "SELECT CASE" en VBA (ACCES
NE RECONNAIT PAS "CASE" en SQL). Je
n'arrive pas a écrire le code correctement, pouvez vous m'aider ?
Merci.