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 :

Etiquette sur graphe ne s'affiche pas en Acc2003


Sujet :

Access

  1. #1
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    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 898
    Points : 4 787
    Points
    4 787
    Par défaut Etiquette sur graphe ne s'affiche pas en Acc2003
    Bonjour,
    Dans un graphe que je complete en affchant l'étiquette sur l'avant dernier piont de la courbe 3 (j'ai 3 courbes), tout cela marche for bien en Acc2000 dans les forms et les etats
    tandis que sous Acc2003 (ma db en format 2000 ou format 2003), elle ne s'affiche pas sans aucun message d'erreur.

    Je pense que ça doit être dû à mes déclarations d'objets qui ont changé depuis XP 2002 (ah, ce late binding !!! ...)
    Je vous met le code (pour l'alléger, j'ai enlevé la partie qui nourissait les courbes et qui marche OK ) :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     Sub fCompleteChart(oChart As Object, numIndent As Long)
    ' But :
    '   Afficher une étiquette en fin de mesure sur la courbe 3
    
        If IsNothing(numIndent) Then
            Debug.Print "pb appel fAchieveChart   noIndent "
            Exit Sub
        End If
    
        Dim objOLE As Object
        Dim objDS
        Dim objChart As Chart
        Dim strSQL As String, strTxt As String
        Dim i As Long, j As Long
        Dim maBD As DAO.Database
        Dim rst As DAO.Recordset
        Dim intRowMax As Integer, intColMax As Integer, arrData As Variant
        Dim mySrs As Series, nbPts As Long
    
        Set objOLE = oChart.Object                  'Accesses the OLE object
        Set objDS = objOLE.Application.DataSheet    'Accesses the Datasheet of the OLE object
        'Set objChart = objOLE.Application.Chart     'Accesses the Chart of the OLE object
         Set objChart = oChart.Object.Application.Chart     'Accesses the Chart of the OLE object
    
     Debug.Print "objOLE.SeriesCollection.Count: " & objOLE.SeriesCollection.Count
    
    
        'Appliquer une étiquette à l'abscisse du point X de la série 3.
       
        nbPts = objChart.SeriesCollection(3).Points.Count
        For i = 1 To nbPts
            'mySrs.Points(i).ApplyDataLabels xlDataLabelsShowNone
            objChart.SeriesCollection(3).Points(i).ApplyDataLabels xlDataLabelsShowNone
        Next i
    
            strTxt = "300 min" & vbLf & "Essai D"
    
        'Etiquette pour marquer l'abcisse de la fin du test
        '--------------------------------------------------
        'Set mySrs = objChart.SeriesCollection(3)
    
        i = objChart.SeriesCollection(3).Points.Count - 1     'Avant-dernier point =intColMax
    
        With objChart.SeriesCollection(3).Points(i)
            .ApplyDataLabels _
                    Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False        With .DataLabel.Font
                '.Superscript = True
                '.Interior.Color = RGB(255, 255, 255)
                .name = "Tahoma"
                .size = 10
            End With
            .DataLabel.Text = strTxt
        End With
    
        'DoEvents        'Pourquoi DoEvents ?
        'objOLE.Refresh
    
    Fin:
        Set mySrs = Nothing
        Set rst = Nothing
        Set maBD = Nothing
    
        Set objDS = Nothing
        Set objChart = Nothing
        Set objOLE = Nothing
    Merci de votre aide
    "Always look at the bright side of life." Monty Python.

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    effectivement tu utilises du late binding, mais tu utilises aussi la constante xlDataLabelsShowNone, qui n'est sans doute pas déclarée dans Access, et qui prenait donc probablement sa valeur dans une référence qui était cochée dans les versions précédentes

    si tu n'as pas mis Option Explicit en en-tête du module, c'est peut-être pour ça que tu n'as pas d'erreur, sinon tu aurais un message disant que la valriable xlDataLabelsShowNone n'est pas déclarée

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    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 898
    Points : 4 787
    Points
    4 787
    Par défaut
    merci pour la réponse.

    J'ai bien "Option Explicit" en en-tête du module (en fait de tous mes modules : je suis trop mauvais programmeur pour me passer de déclarations !!!)

    Les constantes sont bien déclarées dans Access 2003 (avec des ref ...11) et comme pour Access2000 (sur un autre PC avec des refs ...9), j'obtiens par debug.print :
    constante xlDataLabelsShowNone : -4142
    constante xlDataLabelsShowValue : 2
    "Always look at the bright side of life." Monty Python.

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    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 898
    Points : 4 787
    Points
    4 787
    Par défaut
    En fait, ca marche aussi sous acc2003 comme ça ...mais pas pour mon point !

    Sous 2000 je faisais apparaitre, sous l'axe des X, une étiquette personnalisée à l'abscisse de fin des courbes ... en collant un labelData sur un point qui n'est pas affiché sur le graphe (son Y est < Ymin) : ça marche en windows 2000 mais neni en 2003 : bref, il va falloir inventer autre chose !
    "Always look at the bright side of life." Monty Python.

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

Discussions similaires

  1. [JpGraph] Etiquettes de données ne s'affichent pas
    Par kagu03 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/08/2013, 13h49
  2. Réponses: 0
    Dernier message: 28/11/2012, 09h59
  3. Un graphe qui n'affiche pas tout
    Par KNouch dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 19/06/2012, 08h33
  4. [OL-2007] Les info bulles sur images ne s'affichent pas
    Par nicolas2603 dans le forum Outlook
    Réponses: 0
    Dernier message: 22/09/2011, 11h34
  5. Appuyer sur la touche "." n'affiche pas la virgule
    Par loutsky dans le forum Access
    Réponses: 9
    Dernier message: 23/12/2005, 11h18

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