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 :

Concatener deux nombres avec un format dans un état [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut Concatener deux nombres avec un format dans un état
    Bonjour,
    je débute encore

    J'ai une zone de texte dans un état où je concatène 2 champs issus de la requête sur laquelle est basée mon état.

    la source de controle de la zone de texte est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [NumeroSite] & "-" & [NumeroOR]
    j'obtiens qqchose du style: "02-200" où 02 est [Numérosite] et 200 [NumeroOR]
    Je souhaiterais obtenir un résultat du genre: "02-0000200".

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    Bonjour,
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format([NumeroSite],"00") & format([NumeroSite],"-0000000")
    CDLT

  3. #3
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Merci pour ton interêt
    cela faisait une erreur de syntaxe, il n'aimait pas le "-" dans le format.

    j'ai modifié comme ceci avec des ; au lieu des , (c'est ce qui est demandé pour Format si j'ai bien lu l'aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format([NumeroSite];"00") & "-" & Format([NumeroOR];"0000000")
    et j'obtiens un vilain "#Type!"
    cela fonctionne si on met 2 fois NumeroSite comme ta réponse mais ce n'est pas ce que je veux..
    Numerosite est de type Texte court et NumeroOR est de type Numeroauto

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    ...NumeroOR est de type Numeroauto
    Alors il faut convertir en String avant d'appliquer Format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format([NumeroSite];"00") &  Format(cstr([NumeroOR]);"-0000000")
    CDLT

  5. #5
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    j'obtiens :
    Nom : Capture2.JPG
Affichages : 517
Taille : 9,0 Ko

    et voici le code, avec la traduction qui a été faite automatiquemet par access, j'utilise une version Française
    Nom : Capture1.JPG
Affichages : 560
Taille : 26,5 Ko

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    Oui, tu pouvais avoir des erreurs dans les cas où NumeroSite ou NumeroOR ne sont pas encore renseignés,
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = VraiFaux(EstNum([NumeroOR]); Format(CChaîne(Nz([NumeroSite]));"00") & Format(CChaîne(Nz([NumeroOR]));"-000000");"")
    CDLT

  7. #7
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    là cela n'affiche plus rien du tout
    bizarre, parce que la concaténation "simple" fonctionne parfaitement...
    je ne comprends pas ce qui déconne.

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    dans quel cas, ça n'affiche rien ?
    si numero OR est vide, c'est normal, selon la formule ...

  9. #9
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    si je met la concaténation "simple" celle indiquée au début comme fonctionelle, j'obtiens 02-200 comme indiqué au début
    si je remplace avec le dernier code , rien du tout ne s'affiche.. toutes choses étant égales par ailleurs.

    je fais afficher en cliquant éxactement de la même façon.
    avec la concaténation "simple" le résultat est bien celui voulu, mise à part ne nombre de chiffres affichés pour NumeroOR.

    Ce qui m'échappe c'est pourquoi j'obtiens les valeurs par la concaténation "simple" , ce qui veut dire que ces valeurs sont bien existantes et connues par access,
    et pas avec le format...

  10. #10
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    une piste peut être , l'état est ouvert grâce à cette macro, avec la condition where qui attribue le NumeroOR courant:
    Nom : Capture1.JPG
Affichages : 547
Taille : 26,4 Ko

  11. #11
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    As -tu mis dans ton état un champ (masqué ou non) avec nom = NumeroOR et source de donnée = NumeroOR ?

  12. #12
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Pour être plus précis j'avais dans mon état un champ NumeroOR contenant en source de donnée NumeroOR issu d'une requête.
    Je souhaite ajouter un préfixe à ce numero (correspondant à NumeroSite) également présent dans la requête source.
    J'ai donc une zone de texte appelée NumeroOR et comme source de donnée la concaténation de NumeroSite et NumeroOR. j'ai gardé le nom de la zone de texte et changé la source des données..

    J'espère être clair

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 977
    Points
    14 977
    Par défaut
    bonjour,
    J'ai donc une zone de texte appelée NumeroOR et comme source de donnée la concaténation de NumeroSite et NumeroOR.
    c'est bien là le souci car cela crée une référence circulaire, il faut appeler ton contrôle autrement car on ne peut pas formater un contrôle dans la source si celui-ci est utilisé comme nom :
    NumeroOR = NumeroOROK
    NumeroOR = format(NumeroOR,"000000") NOK
    Un conseil : créer ce genre d'expression directement dans la requête

  14. #14
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Effectivement, cela fonctionne parfaitement en changeant le nom de la zone de texte

    Comment puis je intégrer cela directement dans la requête?
    j'avais essayé de modifier le format de NumeroOR dans la case format de la requête, cela fonctionnait si je lançais la requête en mode feuille de données, mais le format n'était pas conservé dans l'état

  15. #15
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Dans tous les cas je met résolu, et merci à tout les deux

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 977
    Points
    14 977
    Par défaut
    bonsoir,
    j'avais essayé de modifier le format de NumeroOR dans la case format de la requête, cela fonctionnait si je lançais la requête en mode feuille de données, mais le format n'était pas conservé dans l'état
    ce n'est pas dans la case Format des propriétés du champ qu'il faut le faire mais dans une nouvelle case Champ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumOR:Format([NumeroSite];"00") & "-" & Format([NumeroOR];"0000000")

  17. #17
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Ok. Je suis en déplacement pour quelques jours. Je regarde ça à mon retour. Merci encore !

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

Discussions similaires

  1. problème dans la somme des deux nombre avec virgule
    Par aymen8219 dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2011, 16h24
  2. Formater des nombre avec locale.format()
    Par VinsS dans le forum Général Python
    Réponses: 4
    Dernier message: 23/07/2010, 15h30
  3. Réponses: 4
    Dernier message: 28/01/2010, 22h07
  4. [E-03][VBA] Concatenation de nombre avec du texte
    Par Overcrash dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2008, 14h40
  5. [Debutant]Somme de deux nombres avec résultat connu
    Par Tchupa dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/06/2007, 11h32

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