Chercher et remplacer certains caratères dans une chaîne issue d'une table Acces

Résolu
Signaler
Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004
-
Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004
-
Bonjour,
J'ai besoin d'une fonction qui me permettrais de remplacer ou supprimer certains caractères dans certains champs d'une table Access 97.
Exemple : "$" => "USD" ; "." => ""; "£" => "LIV" ; "!" => "" ; ...
Et toutes les lettres doivent être converties en majuscule ( sans accents).
Vu le nombre de caractères indésirablés a testé je pense qu'il serait interressant de passer par un sorte de table de comparaison. Mais je ne vois vraiment pas comment faire.
Si qq'un a une idée de génie.... Ou un code sous la main !
Merci d'avance,
Franckb60.

7 réponses

Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004

Bonjour,
J'ai essayé de créer la fonction WBL, que j'utilise lors du transfert d'une valeur d'une table à une autre :

'xs.Fields("numc") = WBL(rs!numc)

Avec :

Public Function WBL(tmpstr As String) As String

tmpstr = Replace(tmpstr, "$", "USD")
tmpstr = Replace(tmpstr, ".", "Y")
tmpstr = Replace(tmpstr, "£", "LIV")
tmpstr = Replace(tmpstr, "!", "")

MsgBox tmpstr ' resultat tmpstr = "USD;LIV"
End Function

Ce qui est bizard ,c'est que le Msgbox me renvoie la bonne valeur, alors que le xs.Fields("numc") renvoie une valeur vide.
Si vous avez une idée !!!
A bientôt
Franckb60
3
Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Salut, tu peux te faire un tableau à deux dimension en dur du genre:

Dim tabComp(x,2) As String

tabComp(0,0) = "$"
tabComp(0,1) = "USD"
tabComp(1,0) = "."
tabComp(1,1) = ""
....

et après tu récupère la valeur de ton champ et tu le passe dans une boucle où tu te sert de ce tableau:

Dim Idx As Integer

For Idx = 0 To UBound(tabComp, 0) - 1
champ = Replace(champ, tabComp(Idx, 0), tabComp(Idx, 1))
Next Idx

et voilou! :)
0
Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004

Merci pour ta réponse rapide.
Je vais essayer avec ça Ah oui j'avais oublié de préciser je ne touche pas une bille en Vb.
@+
FranckB60
0
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
salut,

ou alors tu peux utiliser la fonction Replace

dim tmpstr as string
tmpstr = "$.£!"

tmpstr = Replace(tmpstr, "$", "USD")
tmpstr = Replace(tmpstr, ".", ";")
tmpstr = Replace(tmpstr, "£", "LIV")
tmpstr = Replace(tmpstr, "!", "")

 msgbox tmpstr ' resultat tmpstr = "USD;LIV"



Voila.
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004

Merci et pour le transfert en majuscule Vb ne propose pas une fonction ?
0
Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

Re, tu as a ta disposition les fonctions LCase() et UCase() qui renvoi respectivement la string passer en paramètre en minuscule et en majuscule.
ReA+
0
Messages postés
10
Date d'inscription
mardi 23 mars 2004
Statut
Membre
Dernière intervention
23 septembre 2004

Merci à tous pour votre aide.
Je viens de voir qu'il ne me manquais que :

WBL= TMPSTR en fin de fonction.
0