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

Remplacement de plusieurs caracteres dans requete

3 réponses
Avatar
annk
Bonjour,
j'ai plusieurs tables de même format, avec parmi les différents champs, le champ Salaire. Dans ce champ Salaire, certains sont alphanumériques. Par exemple, 1050K ou encore 30645L. Je voudrais remplacer ces lettres par un nombre ([J;R]=[1;9]). La fonction Remplacement dans une requete MAJ marche très bien, mais seulement pour 1 caractère par requete... Pas très pratique vu que je veux changer une dizaine de caractères sur mes 4 tables...
Ma fonction était donc : Remplacer ([MonChamp];"J";"1") . Comment puis-je insérer les autres caractères que je veux remplacer dans cette même fonction? Quelqu'un aurait-il une brillante idée?
Je vous remercie par avance pour toute aide que vous pourriez m'apporter.

3 réponses

Avatar
RideHickul
'lut,

Brillance observation :
Entre le caractère "J" (code ascii 74) et le "1", (code ascii 49), il y a 25
d'écart.

Brillante proposition :
Gauche([MonChamp];NbCar([MonChamp])-1) & Car(Asc(Droite([MonChamp];1))-25)

Soit :
- on isole la première partie de ton champ :
Gauche([MonChamp];NbCar([MonChamp])-1)
- on ajoute le caractère correspondant au dernier moins l'écart de 25 : &
Car(Asc(Droite([MonChamp];1))-25)

Brillants bugs à prévoir :
1) Ne prends pas en comptes d'éventuelles combinaisons majuscules /
minuscules
2) Résultats corrects qu'avec la plage "J à R" pour "1 à 9" (la présence
d'autres lettres va donner des résultats bizarres ...)


Si les 2 restrictions ci-dessus posent problème, une autre solution
consisterait à passer par une table intermédiaire :

- Dans cette table tu mets 2 champs : le champ "cherche" et le champ
"remplace" et tu renseignes tous les remplacements à faire,
- Tu fais une requete sur ta table avec ton champ et un deuxième qui isole
le dernier caractère,
- Tu fais une requete sur la table intermédiaire et sur la requete
précedente en mettant une relation entre le champ "Cherche" et le champ dans
lequel tu as isolé le dernier caractère,
- Tu peux ainsi récupérer le caracatère de remplacement facilement ...

Redemande si tu as besoin d'aide sur cette alternative (un peu plus obscure
j'en ai bien conscience...)

RideHickul



"annk" a écrit dans le message de news:

Bonjour,
j'ai plusieurs tables de même format, avec parmi les différents champs, le
champ Salaire. Dans ce champ Salaire, certains sont alphanumériques. Par
exemple, 1050K ou encore 30645L. Je voudrais remplacer ces lettres par un
nombre
([J;R]=[1;9]). La fonction Remplacement dans une requete MAJ marche très
bien,
mais seulement pour 1 caractère par requete... Pas très pratique vu que je
veux
changer une dizaine de caractères sur mes 4 tables...
Ma fonction était donc : Remplacer ([MonChamp];"J";"1") . Comment puis-je
insérer les autres caractères que je veux remplacer dans cette même
fonction?
Quelqu'un aurait-il une brillante idée?
Je vous remercie par avance pour toute aide que vous pourriez m'apporter.
Avatar
annk
RideHickul a écrit le 02/07/2010 à 19h44 :
'lut,

Brillance observation :
Entre le caractère "J" (code ascii 74) et le "1",
(code ascii 49), il y a 25
d'écart.

Brillante proposition :
Gauche([MonChamp];NbCar([MonChamp])-1) & Car(Asc(Droite([MonChamp];1))-25)

Soit :
- on isole la première partie de ton champ :
Gauche([MonChamp];NbCar([MonChamp])-1)
- on ajoute le caractère correspondant au dernier moins l'écart
de 25 : &
Car(Asc(Droite([MonChamp];1))-25)

Brillants bugs à prévoir :
1) Ne prends pas en comptes d'éventuelles combinaisons majuscules /
minuscules
2) Résultats corrects qu'avec la plage "J à R" pour
"1 à 9" (la présence
d'autres lettres va donner des résultats bizarres ...)


Si les 2 restrictions ci-dessus posent problème, une autre solution
consisterait à passer par une table intermédiaire :

- Dans cette table tu mets 2 champs : le champ "cherche" et le champ
"remplace" et tu renseignes tous les remplacements à faire,
- Tu fais une requete sur ta table avec ton champ et un deuxième qui
isole
le dernier caractère,
- Tu fais une requete sur la table intermédiaire et sur la requete
précedente en mettant une relation entre le champ "Cherche" et
le champ dans
lequel tu as isolé le dernier caractère,
- Tu peux ainsi récupérer le caracatère de remplacement
facilement ...

Redemande si tu as besoin d'aide sur cette alternative (un peu plus obscure
j'en ai bien conscience...)

RideHickul



"annk" a écrit dans le message de
news:

Bonjour,
j'ai plusieurs tables de même format, avec parmi les différents
champs, le
champ Salaire. Dans ce champ Salaire, certains sont alphanumériques.
Par
exemple, 1050K ou encore 30645L. Je voudrais remplacer ces lettres par un
nombre
([J;R]=[1;9]). La fonction Remplacement dans une requete MAJ marche
très
bien,
mais seulement pour 1 caractère par requete... Pas très pratique
vu que je
veux
changer une dizaine de caractères sur mes 4 tables...
Ma fonction était donc : Remplacer
([MonChamp];"J";"1") . Comment puis-je
insérer les autres caractères que je veux remplacer dans cette
même
fonction?
Quelqu'un aurait-il une brillante idée?
Je vous remercie par avance pour toute aide que vous pourriez m'apporter.




Merci pour ta réponse qui me semble ô combien brillante effectivement, je vais essayer ça dès lundi.
Par hasard, parmi ces lettres présentes dans mon champ (qui correspondent à des montants négatifs en fait), j'ai aussi le caractère arbare "Š"... saurais-tu à quoi il pourrait bien correspondre?
Avatar
annk
RideHickul a écrit le 02/07/2010 à 19h44 :
'lut,

Brillance observation :
Entre le caractère "J" (code ascii 74) et le "1",
(code ascii 49), il y a 25
d'écart.

Brillante proposition :
Gauche([MonChamp];NbCar([MonChamp])-1) & Car(Asc(Droite([MonChamp];1))-25)

Soit :
- on isole la première partie de ton champ :
Gauche([MonChamp];NbCar([MonChamp])-1)
- on ajoute le caractère correspondant au dernier moins l'écart
de 25 : &
Car(Asc(Droite([MonChamp];1))-25)

Brillants bugs à prévoir :
1) Ne prends pas en comptes d'éventuelles combinaisons majuscules /
minuscules
2) Résultats corrects qu'avec la plage "J à R" pour
"1 à 9" (la présence
d'autres lettres va donner des résultats bizarres ...)


Si les 2 restrictions ci-dessus posent problème, une autre solution
consisterait à passer par une table intermédiaire :

- Dans cette table tu mets 2 champs : le champ "cherche" et le champ
"remplace" et tu renseignes tous les remplacements à faire,
- Tu fais une requete sur ta table avec ton champ et un deuxième qui
isole
le dernier caractère,
- Tu fais une requete sur la table intermédiaire et sur la requete
précedente en mettant une relation entre le champ "Cherche" et
le champ dans
lequel tu as isolé le dernier caractère,
- Tu peux ainsi récupérer le caracatère de remplacement
facilement ...

Redemande si tu as besoin d'aide sur cette alternative (un peu plus obscure
j'en ai bien conscience...)

RideHickul



"annk" a écrit dans le message de
news:

Bonjour,
j'ai plusieurs tables de même format, avec parmi les différents
champs, le
champ Salaire. Dans ce champ Salaire, certains sont alphanumériques.
Par
exemple, 1050K ou encore 30645L. Je voudrais remplacer ces lettres par un
nombre
([J;R]=[1;9]). La fonction Remplacement dans une requete MAJ marche
très
bien,
mais seulement pour 1 caractère par requete... Pas très pratique
vu que je
veux
changer une dizaine de caractères sur mes 4 tables...
Ma fonction était donc : Remplacer
([MonChamp];"J";"1") . Comment puis-je
insérer les autres caractères que je veux remplacer dans cette
même
fonction?
Quelqu'un aurait-il une brillante idée?
Je vous remercie par avance pour toute aide que vous pourriez m'apporter.




Ca marche très bien! Merci beaucoup