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

VB 6 et antérieur Discussion :

Format de données dans MSHFlexGrid


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut Format de données dans MSHFlexGrid
    Bonjour a tous.

    Dans une appli VB6 construite sur la base de tables temporaires SQL2000, j'utilise des MSHFlexGrid.
    Je voudrais savoir s'il est possible de définir le format d'affichage des données dans les MSHFlexGrid, le but étant d'avoir les numériques avec 2 décimales.

    A+
    (PS: Je ne crois pas que le code soit nécessaire pour ce poste, mais comme l'erreure est humaine ..... si besoin, vous dite .... mais pas trops fort.)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut Complément d'info.
    Re

    J'utilise un DatEnvironment pour ma connection.
    J'ais essayé d'arrondir les valeurs au niveaux de l'import dans mes table temporaire : résultat, les valeurs sont à deux decimales dans la table mais pas à l'affichage dans vb.
    ne perdant pas courrage j'ai effectué la même opération au niveaux du DataEnvironment avec le même résultat.
    Pour ce fair j'utilise un Round().
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Round(Champ1, 2) AS Champ, ... From Table
    A+

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    il peut s'agir tout simplement d'une question de . (point) ou de , (virgule) suivant l'entrée des données dans le grid.
    A+
    PS: tu est dans le bon forum.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Bonjour

    et merci LeForestier pour ta réponse.
    J'ai un petit peu progressé dans ma recherche, j'utilise la propriété TextMatrix() pour la mise en forme de mes données dans un bloc With
    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
    16
    17
    18
    19
    With MSHCde1
        'Mise en forme
        .BandIndent(1) = 4
        .BackColorIndent(1) = vbYellow
        'Définition des entête de colonne
        .ColHeader(0) = flexColHeaderOn
        .ColHeaderCaption(0, 1) = "C.AF."
        .ColHeaderCaption(0, 2) = "Total Année"
        .ColHeaderCaption(0, 3) = "% Année"
        .ColHeader(1) = flexColHeaderOn
        .ColHeaderCaption(1, 0) = "Mois"
        .ColHeaderCaption(1, 1) = "Total Mois"
        .ColHeaderCaption(1, 2) = "% mois"
        .ColWidth(0, 0) = 300
        'Suppression de la ligne d'entête par défaut
        .FixedRows = 0
        'Définition du format d'affichage des valeurs
        .TextMatrix(1, 2) = Round(MSHCde1.TextMatrix(1, 2), 2)
    End With
    Mais à l'exécution j'ai le message "Erreur d'exécution 13 : Type incompatible"
    pour la création de ma table j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DEnv1.Cnn1.Execute ("SELECT A.ID, A.Representant, A.AnneeCde, ROUND(A.SumAnnee, 2) AS SumAnnee, Round((A.SumAnnee/B.TotalAnnee)*100, 2) AS PAnneeCde INTO ABStatCde12 FROM ABStatCde10 AS A INNER JOIN ABStatCde11 AS B ON A.AnneeCde=B.AnneeCde GROUP BY A.ID, A.Representant, A.AnneeCde, A.SumAnnee, B.TotalAnnee")
    les champs numérique sont créés au format Float et arrondi à 2 décimals (ex : 12,15)
    J'ai bien essayé des conversions aux différents formats numérique, mais sans résultat.
    Le problème vient peut être de la création de ma table temporaire ?
    Mais là, j'avoue que je sèche un peut.

    A+

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    bonjour,
    Comme dit plus haut il est probable que c'est à cause de la virgule, j'ai déjà eu ce problème et je doit dire que j'ai sècher dur pour y remédier.
    Pour dire à VB d'écrire que c'est un nombre il faut l'envoyer sous forme 12.15, bien qu'il l'écrive 12,15 cela dépend des options windows. Je me suis fait une fonction qui remplacait la virgule par un point. Et ça fonctionnait.
    Bon, ton problème est peut-être ailleur mais personnellement je ne vois rien d'autre
    A+

    Edit: en relisant ton ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextMatrix(1, 2) = Round(MSHCde1.TextMatrix(1, 2), 2)
    La fontion TextMatrix renvoi au format texte et la fonction Round travaille sur des nombres...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextMatrix(1, 2) = Cstr(Round(val(MSHCde1.TextMatrix(1, 2)), 2))
    J'ai pas testé mais c'est une autre piste

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Par défaut
    Re

    J'ai déjas essayé cette solution mais sans résultat.
    j'ai aussi essayé le Format.Number="###0.00#" mais toujour pareil.
    En ce qui concerne le problème des . ou , je ne vois pas trops comment procéder, autrement dit à quel moment intervenir et sur tout comment.
    Si je peu abuser ... ... juste un conseil ou deux ? ....

    a+

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

Discussions similaires

  1. [AC-2010] Format de données dans une requête appliqué à l'entête de la colonne
    Par Humanisto dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/08/2014, 11h43
  2. [AC-2003] Format de données dans zone de texte
    Par stargates01 dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/02/2012, 17h52
  3. Format de données dans userform
    Par _Nimy_ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/03/2008, 11h16
  4. Formater une donnée dans une requête
    Par elkhy dans le forum Oracle
    Réponses: 1
    Dernier message: 06/08/2006, 17h21
  5. Format de données dans Access
    Par delcroixf dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/02/2006, 23h34

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