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 :

Conversion champ numérique en texte


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 88
    Points
    88
    Par défaut Conversion champ numérique en texte
    Bonjour,

    Je souhaite dans une requête obtenir un champ sous la forme 10/12/07 à partir d'un champ numérique de ma table qui est = 71210
    Est-ce possible ?
    Je n'ai pas trouvé de solutions sur le forum, peut être ai-je mal cherché?

    Merci d'avance

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Points : 196
    Points
    196
    Par défaut
    Bonjour,

    Le plus simple est d'ajouter un champ à ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTexte:Format$([TaDateChiffre];"jj/mm/aa")

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 88
    Points
    88
    Par défaut
    Merci Alain36, mais cela ne fonctionne pas; J'ai bien précisé que le champ à convertir état numérique donc pas au format date

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Essaye cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateSerial(Format(Left(71210,1),"00"),Mid(71210,2,2),Right(71210,2))
    Je m'en suis servi pour le test, c'est la piste à suivre.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateSerial(Left(monchamp, Len(monchamp) - 4), Mid(monchamp, Len(monchamp) - 3, 2), Right(monchamp, 2))
    Elle est pas belle la vie ?

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 132
    Points : 88
    Points
    88
    Par défaut
    Merci à tous,

    Je vais essayé ces différentes solutions

  7. #7
    Futur Membre du Club
    Homme Profil pro
    utilisateur access
    Inscrit en
    Février 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : utilisateur access
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 9
    Points : 8
    Points
    8
    Par défaut dans la même optique
    bonjour et merci de m'acceuillir sur le forum.
    j'y ai déjà trouvé de nombreuses réponses, mais là, je cale.
    access 2003-2007 requête.
    j'ai un champ 'num encodage' qui est un champ numérique.
    dans une requête, j'essaie d'ajouter un champ 'refperso' qui devrait enlever les 3 derniers chiffres du contenu (5 où 6 chiffres) et me donner la valeur en format 'texte'.
    je bute sur la formule à appliquer.
    un exemple : 10654 (champ 'num encodage') et je voudrais obtenir '10' puis ajouter au résultat '-' + '10654' afin d'obtenir "10-10654" soit mon numéro de référence personnelle.
    un autre exemple : 110688 (champ 'num encodage') et je voudrais obtenir '110' puis ajouter au résultat '-' + '110688' afin d'obtenir "110-110688"
    dans ma requête je fais 'refperso:[num encodage] et j'obtiens le bon résultat mais en numérique, je ne sais pas me servir de 'right' pour extraire, et format (tous mes essais se sont soldés par 'invalide')
    si une bonne âme pouvait m'aider ?
    merci d'avance
    didier

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour et bienvenue chez nous,


    Par exemple comme ceci :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Table1 SET Table1.MaRef = Left(CStr([Ref]),Len(CStr([Ref]))-3) & "-" & CStr([Ref]);
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Futur Membre du Club
    Homme Profil pro
    utilisateur access
    Inscrit en
    Février 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : utilisateur access
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 9
    Points : 8
    Points
    8
    Par défaut conversion champ numérique en texte
    bonjour et merci pour votre réponse.
    en fait j'ai créé une requête pour créer un ".csv" dont les titres ne sont pas les mêmes que ma base de donnée.
    ça fonctionne bien sauf cette colonne 'refperso' qui doit être en texte (avec un tiret) alors que le champ 'num encodage' (duquel je dois extraire les informations pour créer 'refperso') est un champ numérique.
    j'aurais voulu connaître la formule qui fonctionne en créant une colonne dans ma requête (en mode création) qui me ferait ça.
    donc je met refperso:[num encodage] qui me renvoie la valeur du champ num encodage, mais ça reste numérique et je n'arrive pas à trouver la formule pour faire afficher le résultat comme dans les exemples ci-dessus. (10654 -> 10-10654).
    quand cela fonctionne, je copie tous les enregistrements de ma requête dans un fichier .csv et il est bon, je ne dois plus, comme maintenant faire toute une série d'opérations et concaténation dans le fichier .csv
    j'avoue que je n'y connaît pas grand chose en programmation, mais je cherche des solutions que je trouve souvent, mais là ... j'ai trouvé la formule qui fonctionne mais uniquement si le champ 'num encodage' était en format texte (qui serait -> refperso:right([num encodage],3)&"-"&[num encogage].
    tous mes essais avec la commande format se sont soldés par une réponse 'invalide'
    c'est très difficile pour moi d'expliquer exactement ce que je voudrais, ne connaissant rien au code et autres languages de programmation.
    le tout dernier point qui me pose encore soucis, ce serait d'obtenir un résultat avec un point décimal au lieu de la virgule décimale. j'ai réussi à obtenir le résultat désiré, mais les .csv renvoient des erreurs si c'est une virgule décimale (0,25 renvoie une valeur 0)
    merci d'avance
    bon dimanche
    didier

  10. #10
    Futur Membre du Club
    Homme Profil pro
    utilisateur access
    Inscrit en
    Février 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : utilisateur access
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 9
    Points : 8
    Points
    8
    Par défaut conversion champ numérique en texte
    re bonjour.
    suis-je bête !!!! vous me l'avez donnée la formule et ça marche à merveille.
    c'est très très fort ....
    merci un max de fois.

    oserais-je abuser pour le problème restant de point décimal au lieu de la virgule ?

    merci encore

    didier

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    oserais-je abuser pour le problème restant de point décimal au lieu de la virgule ?
    Quel est ton problème ?

    Où se trouve la valeur d'origine (celle avec la virgule) ?

    Où faut-il inscrire le résultat (avec un point) ?

    C'est sans doute en utilisant la fonction Replace() qu'on y arrivera





    D'une manière générale, pour se documenter sur les propriétés d'un formulaire ou d'un état, ou de leurs contrôles :
    - afficher l'objet en mode construction ;
    - cliquer sur la propriété => elle se met en surbrillance ;
    - enfoncer la touche <F1>
    => l'aide Access s'ouvre à la bonne page.
    De même dans le code, placer le curseur de la souris et enfoncer F1.
    On peut aussi :
    • ouvrir l'aide <F1>, choisir l'onglet « Aide intuitive » et suivre les instructions ;
    • ouvrir la fenêtre d'exécution (<Ctrl> + G), saisir un mot-clé, y placer le curseur de la souris et enfoncer F1.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #12
    Futur Membre du Club
    Homme Profil pro
    utilisateur access
    Inscrit en
    Février 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : utilisateur access
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 9
    Points : 8
    Points
    8
    Par défaut changer la virgule décimale en point décimal
    bonjour,
    j'ai un champ numérique [prix] - fixe - 2 décimales, par exemple 123,45 correspondant à un montant.
    je dois y ajouter 0,10 (ça j'ai trouvé -|prix1:[prix]+0,10|)j'ai donc 123,55; mais en plus, pour le mettre correctement dans un fichier csv, il faut que la virgule devienne un point, donc qu'il renvoie 123.55
    j'ai essayé avec la formule qui transforme le champ numérique en texte (que vous m'avez donnée avec brio) mais j'ai un problème du fait que ce montant peut être 1,25; 10,50; 120,30; 1250,25; où tout autre chiffre, toujours avec 2 décimales mais des unités, centaines, milliers, ... donc je ne sais pas lui demander de remplacer la virgule en point parce que je ne sais pas où elle se trouvera dans l'enregistrement.
    dans les formats numériques, il n'y a pas de point décimal, c'est toujours une virgule.
    peut-être avec la commande format mais j'ai déjà essayé plein de chose et toujours la réponse non valide.

    je dois dire que ce n'est pas grave s'il n'y a pas de solution, dans le csv je sélectionne la colonne et je fais 'remplacer' , par . et ça va, mais tant qu'à faire si ça peut se faire tout seul ...

    pour l'aide, j'ai déjà regardé sans succès, interrogé google. ça fait 3 jours que je suis là-dessus et vous me sortez la formule adéquate en 5 secondes, il y a de quoi être déprimé par mon incompétence ...

    merci

    didier

  13. #13
    Futur Membre du Club
    Homme Profil pro
    utilisateur access
    Inscrit en
    Février 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : utilisateur access
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2016
    Messages : 9
    Points : 8
    Points
    8
    Par défaut point au lieu de virgule
    bonjour,
    eurêka
    fixedprice:str([prix]+0,10)

    et ça fonctionne
    je commence à comprendre un peu mieux l'ordre, les parenthèses et les crochets, en fait j'avais une erreur parce que je devais mettre tout ce qu'il y a derrière str entre parenthèse.

    merci en tout cas pour votre gentillesse et compétence, sans vous, j'y serais encore

    merci merci ...

    didier

  14. #14
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut


    Bonne continuation.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

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

Discussions similaires

  1. conversion format numérique en texte
    Par idhmida dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/12/2013, 13h28
  2. [WD12] Masque Affichage conservé d'un champ numérique vers texte
    Par zouzoukha dans le forum WinDev
    Réponses: 2
    Dernier message: 16/01/2010, 18h43
  3. filtre avec conversion numérique vers texte
    Par petitbison dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/07/2009, 08h15
  4. Réponses: 2
    Dernier message: 18/06/2008, 09h58
  5. Date : conversion d'un champ numérique en date
    Par jevany dans le forum Access
    Réponses: 2
    Dernier message: 13/02/2006, 17h39

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