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

Résolu
Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004 - 20 sept. 2004 à 14:47
Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004 - 23 sept. 2004 à 14:20
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

Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004
22 sept. 2004 à 16:50
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
Fulgy Messages postés 85 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 5 octobre 2004
20 sept. 2004 à 15:06
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
Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004
20 sept. 2004 à 20:51
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
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 sept. 2004 à 09:53
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004
21 sept. 2004 à 10:58
Merci et pour le transfert en majuscule Vb ne propose pas une fonction ?
0
Fulgy Messages postés 85 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 5 octobre 2004
21 sept. 2004 à 11:00
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
Franckb60 Messages postés 10 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 23 septembre 2004
23 sept. 2004 à 14:20
Merci à tous pour votre aide.
Je viens de voir qu'il ne me manquais que :

WBL= TMPSTR en fin de fonction.
0
Rejoignez-nous