IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Suppression caracteres Speciaux et lettres


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 24
    Points
    24
    Par défaut Suppression caracteres Speciaux et lettres
    Bonjour,
    J'ai un champs avec des Currency non reconnu par Access (par exemple : 12000.12 EUR, CH 2500.12, $ 1400.12) Je souaiterais obtenir uniquement les chiffres avec la décmale et supprimer toute lettre ou $.

    J'ai tenté ccur, mais cela ne fonctionnement pas ni replace EUR par vide car je ne sais pas à l'avance toutes les currency possibles.

    En résumer quelqu'un sait t - il comment supprimer toute les Lettres et caractere speciaux d'un champs texte.

    Merci d'avance pour votre aide,
    Richardprod

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    Bonjour,
    En passant par une boucle
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim i as Integer
    Dim chaineaExpurger As String
    chaineaExpurger = Inputbox("valeur")
    i = 32
     
    Do Until IsNumeric(chaineaExpurger )
    chaineaExpurger = Replace(chaineaExpurger,Chr(i),"")
    i = i+1
    if i = 48 then i = 58 'zone des chiffres
    if i = 46 then i = 47 'on garde le .
    Loop
    MsgBox "Et voila le résultat : " & chaineaExpurger

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup,

    j'ai créé une fonction avec ta proposition comme suis pour mettre à jour mon champ dans ma table mais j'ai une errur : "Invalid procedure call or argument sur la ligne chaineaexpurger = Replace(chaineaexpurger, Chr(i), "").
    Quelqu'un aurait une idée de la raison ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub conversion()
     
    Dim MaTable As Recordset
    Set MaTable = currentDb.OpenRecordset("PL")
    Do Until MaTable.EOF = True
    MaTable.Edit
    MaTable("Trans_Amount") = convert(MaTable("Trans_Amount").Value)
    MaTable.Update
     
    MaTable.MoveNext
    Loop
    MaTable.Close
     
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function convert(chaineaexpurger As String) As String
    Dim i As Integer
    i = 32
    Do Until IsNumeric(chaineaexpurger)
     
    chaineaexpurger = Replace(chaineaexpurger, ",", ".")
    chaineaexpurger = Replace(chaineaexpurger, Chr(i), "")
    i = i + 1
    If i = 48 Then i = 58 'zone des chiffres
    If i = 46 Then i = 47 'on garde le .
    Loop
    End Function

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    Essaie plutôt de passer par une variable locale, sans oublier de renvoyer le résultat de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function convert(chaineaexpurger As String) As String
    Dim i As Integer
    Dim tmpstr As String
    i = 32
    tmpstr = chaineaexpurger
    Do Until IsNumeric(tmpstr ) 
     
    tmpstr = Replace(tmpstr , ",", ".")
    tmpstr = Replace(tmpstr , Chr(i), "")
    i = i + 1
    If i = 48 Then i = 58 'zone des chiffres
    If i = 46 Then i = 47 'on garde le .
    Loop
    convert = tmpstr
    End Function

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonsoir,
    il y a peut-être plus simple mais uniquement si j'ai bien compris.

    Tu as dans le champ une de ces trois valeurs:
    - 12000.12 EUR
    - CH 2500.12
    - $ 1400.12
    ou les 3 valeurs sont comprises dans le champ d'un seul enregistrement.

    Dans le cas où tu as une des 3 valeurs essaie ceci comme champ dans une requête
    Pour l'exemple j'appelle le champ Chaine.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IIf(
     Instr(Chaine,".")>Instr(Chaine," "),
     Val(Mid(Chaine,Instr(Chaine," ")+1)),
     Val(Chaine)
     ) As [Valeur]

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut ilank, jpcheck et richardprod,

    en supposant qu'il y a toujours un espace entre la monnaie et la valeur et pas d'autre <espace>:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    val(left(v,instr(v," ")))+ val(mid(v,instr(v," ")))


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [String]Caractères spéciaux
    Par faub dans le forum Général Java
    Réponses: 3
    Dernier message: 27/01/2005, 11h23
  2. [sgbd] perl, oracle et caracteres speciaux
    Par fsapet dans le forum SGBD
    Réponses: 2
    Dernier message: 07/09/2004, 11h22
  3. [Débutant][String] Remplacez les caractères speciaux
    Par paf15 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/04/2004, 22h39
  4. [langage] Caractères spéciaux
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2003, 10h39
  5. insertion caracteres speciaux html
    Par arcane dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2003, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo