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

Changer une partie des valeurs d'un champ

2 réponses
Avatar
Michel
Bonjour à tous

Voila mon problème

dans une table j'ai un champ contenant des valeurs que je ne peux modifié
définitivement mais que je dois modifié pour l'affichage dans les
formulaires ou dans les états.

valeur contenue dans le champ et devant ètre momentanément modifié :

S4L >> SA4L
S4S >> SA4S

V5L >> SB5L
V5S >> SB5S

Les chiffres allant de 1 à 5 et sachant que les enregistrements ne
commencent pas par SB ou SA de doivent pas être modifiés et que les
formulaires devant afficher les renseignement ne sont qu'en consultation

Je cherche donc a modifiés avant l'utilisation puis a restitué sa valeur
aprés.

J'ai essayé d'imbrigué deux Vrai/Faux dans la requéte source de l'un de mes
formulaires
SELECT CouplesActif.Classe, (IIf([Classe]="S","SA",[Classe])) Or
(IIf([Classe]="V","SB",[Classe])) AS Clas
FROM CouplesActif;

J'obtiens "-1" pour tous les enregistrements concernés ou pas ?

Autre précision, je ne connais pas VB.

Un peu d'aide serais la bien venue, d'avance merci
Michel

2 réponses

Avatar
Xavier HUE
Bonjour Michel,

Comme ceci:

SELECT CouplesActif.Classe, IIf(Left([Classe],1)="S","SA"
& Mid([Classe],2),IIf(Left([Classe],1)="V","SB" & Mid
([Classe],2),[Classe])) AS Expr1
FROM CouplesActif;

Il faut imbriquer les IIf.

Ton résultat -1 correspond à l'évaluation booléenne:
PremierIIf Or SecondIIf

Access évalue le résultat du PremierIIf et obtiens un
résultat. Il évalue ensuite le second IIf, obtiens un
résultat, puis il évalue la comparaison faite par
l'opérateur Or.

Comme tes deux IIf retournent toujours une chaine alpha:
ChaineAlpha1 Or ChaineAlpha2 = True (Vrai, soit -1).

Cordialement.
Avatar
Michel
Merci beaucoup,

je ne suis pas sur d'avoir tous bien saisie pour l'écriture, je vais essayer
d'appliquer, en revanche pour le raisonnement j'ai effectivement saisi que
je recevais le résultat d'un calcul et non une valeur.

Merci encore
Michel





"Xavier HUE" a écrit dans le message de news:
097401c3b2aa$4dd0f470$
Bonjour Michel,

Comme ceci:

SELECT CouplesActif.Classe, IIf(Left([Classe],1)="S","SA"
& Mid([Classe],2),IIf(Left([Classe],1)="V","SB" & Mid
([Classe],2),[Classe])) AS Expr1
FROM CouplesActif;

Il faut imbriquer les IIf.

Ton résultat -1 correspond à l'évaluation booléenne:
PremierIIf Or SecondIIf

Access évalue le résultat du PremierIIf et obtiens un
résultat. Il évalue ensuite le second IIf, obtiens un
résultat, puis il évalue la comparaison faite par
l'opérateur Or.

Comme tes deux IIf retournent toujours une chaine alpha:
ChaineAlpha1 Or ChaineAlpha2 = True (Vrai, soit -1).

Cordialement.