Remplacement de plusieurs caracteres dans requete

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
RideHickul
Le #22323081
'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"
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.
annk
Le #22323161
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?
annk
Le #22329261
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
Publicité
Poster une réponse
Anonyme