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

Access Discussion :

utiliser données texte pour faire des calculs


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut utiliser données texte pour faire des calculs
    Salut,
    j'ai (encore) un soucis :
    j'ai une colonne "surface", sous format texte, qui contient des valeurs décimales. J'ai besoin de ces valeurs pour effectuer des calculs, mais bien évidement, je n'arrive pas juste à transformer les nombres par un changement de format texte vers numérique, à cause des points (comme dans 4.58)....mes données contenant des points sont simplement supprimées! Comme je n'ai pas le fichier de base, je ne sais pas comment récupérer ces données au format numérique. Comment faire ces calculs?

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    tu connais la fonction Replace() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Replace(MaVar, ".", ",")
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Je ne connais pas grand chose Enfin, tu l'auras compris, depuis le temps que je vous harcèle

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    est ce que ça revient au même que de chercher tous les points de la colonne pour les remplacer par des virgules?
    Parce que ça, ça ne marche pas....J'ai des 0 à la place de toutes les valeurs qui comportent un point!

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    merci de nous donner ton code, pour qu'on comprenne ton erreur.

    merci de l'entourer par les balises code.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    je n'ai pas fait ça avec un code, mais avec la fonction "recherche" du mode "table de données"...

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par sarah67
    je n'ai pas fait ça avec un code, mais avec la fonction "recherche" du mode "table de données"...
    super !

    mais as-tu essayé la solution que je t'ai proposée ?

    ça peut se mettre dans une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Matable
    SET Macolonne = Replace(Macolonne, ".", ",")
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  8. #8
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Producteurs_2005_reman
    SET [Surface num]=Replace([Surface num], ".", ",")
    ça me donne "fonction 'replace' non définie dans l'expression"

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Ça veut dire quoi, une fonction qui n'est pas définie ?

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Merci pour les balises

    quelle est ta version d'access, Replace() n'est dispo que depuis la 2000
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  11. #11
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    J'ai Access 2000.
    Une fonction non définie, c'est donc une fonction que le programme ne connait pas?

  12. #12
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    sous 2000, j'ai testé sans encombre une requête de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Clients.nom, replace([nom],"a","@") AS exp
    FROM Clients;
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  13. #13
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    donc, s'il n'y a pas moyen d'exécuter cette requête, je n'ai pas de moyen de récuperer ces données sous format numérique?

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par sarah67
    donc, s'il n'y a pas moyen d'exécuter cette requête, je n'ai pas de moyen de récuperer ces données sous format numérique?
    il faudra combiner le replace et une fonction de conversion de type pour obtenir un numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(Replace(MaColonne, ",", "."))
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  15. #15
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    c'est toujours cette fonction "replace" qui bloque, elle n'est "pas définie"...J'ai essayé avec "remplacer", mais ça ne change rien

  16. #16
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par cafeine
    sous 2000, j'ai testé sans encombre une requête de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Clients.nom, replace([nom],"a","@") AS exp
    FROM Clients;
    Non, ça ça fonctionne pas en théorie. Replace est disponible sous Access 2000 uniquement en VBA, pas en SQL... Un bug peut être. Solution réécrire une fonction publique en VBA qui utilisera REPLACE

    Dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function MonReplace(strChaine As String, strFind As String, strReplace As String) As String
    MonReplace = Replace(strChaine, strFind, strReplace)
    End Function
    Le code de cafeine devient alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Clients.nom, MonReplace([nom],"a","@") AS exp
    FROM Clients;

  17. #17
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Il doit y avoir un gros bug tout court, dans mon ACESS: aucune fonction, que ce soit, , , ou
    "MonReplace"
    , ni aucune autre que j'ai pu essayer....

  18. #18
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu as bien mis le code de la fonction dans un module ?

    J'ai l'impression que tu ne comprends pas les principes de base du langage VBA

  19. #19
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    pouarf ...

    en effet, Replace() ne marche pas dans le cas général, j'oubliais que sur ma base de tests, j'ai une fonction personnalisée Replace() ...

    désolé
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  20. #20
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 56
    Points : 16
    Points
    16
    Par défaut
    Tu as bien mis le code de la fonction dans un module ?
    Je suis débile, mais pas à ce point...
    et puis ça:
    J'ai l'impression que tu ne comprends pas les principes de base du langage VBA
    c'est sur, je ne comprends rien du tout, c'est bien pour ça que je demande

    Mon ACCESS déconne vraiment! L'afichage de l'aide lors d'un message d'erreur ne fonctionne pas, les ; ne sont pas acceptés et les fonctions sous SQL ne passent pas...Dire que je suis en stage, et que personne ici ne sais m'aider!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. utilisation de Tmap pour faire des calculs en talend
    Par al318203 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/08/2012, 15h09
  2. [MySQL] Comment utiliser MySQL Worbench pour faire des requetes affichage
    Par Debutant10 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/12/2011, 22h38
  3. Réponses: 2
    Dernier message: 17/02/2009, 20h26
  4. utilisation du TChart pour faire des graphiques
    Par tchimou dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/04/2007, 14h59
  5. Réponses: 5
    Dernier message: 23/02/2007, 09h04

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