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

VBA Access Discussion :

Erreur dans un code VBA dans Access


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Erreur dans un code VBA dans Access
    Bonjour à tous,

    Lors de l'execution d'une macro dans ma base de données Access, j'ai le message d'erreur suivant :

    Erreur d'execution '1004'

    Impossible de déterminer la propriété Text de la classe ChartTitle

    N'ayant pas concu moi meme cette base de données, et étant débutant dans le language VBA, je ne sais pas comment résoudre le probleme. Visiblement, cette erreur vient du passage Access 2003/Access 2007

    Merci pour l'aide que vous pourrez m'apporter.

    Voici le code qui posse probleme : (en jaune la ligne de bug)



    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Public Function InitialisationGraphOLE(GraphOLE As Object, _
      RequeteGraphique As String, TitreGraphique As String, TypeGraphique As String, Optional YScale As Long = 1000)
        Dim RST As DAO.Recordset
     
        Dim GOLE As Chart
        Set GOLE = GraphOLE.object
        ErreurRequete = ""
        ' Initialisation de la requete
        If (RequeteGraphique <> "") Then
     
            If QueryDefExist("QTemp_G") Then
                DoCmd.DeleteObject acQuery, "QTemp_G"
                CurrentDb.CreateQueryDef "QTemp_G", RequeteGraphique
            Else
                CurrentDb.CreateQueryDef "QTemp_G", RequeteGraphique
            End If
     
            'MsgBox VarType(CurrentDb.OpenRecordset("QTemp_G", dbReadOnly))
            Set RST = CurrentDb.OpenRecordset("QTemp_G", dbReadOnly)
            If RST.RecordCount > 0 Then
                GraphOLE.RowSource = RequeteGraphique
            Else
                ErreurRequete = "Aucun enregistrement n'a été retourné suite à votre séléction. Le formulaire de sélection est réinitilisé sur l'indicateur par défaut."
            End If
     
            'Call DetruireRecordSetTemporaire(RST)
            DoCmd.DeleteObject acQuery, "QTemp_G"
     
        End If
     
        If ErreurRequete = "" Then
            ' Initialisation du Titre
        If (RequeteGraphique <> "") Then GOLE.ChartTitle.Text = TitreGraphique
            ' Initialisation Type Graphique
            With GOLE
                Select Case TypeGraphique
                Case "Histogramme"
                    .ChartType = xlColumnClustered  ' Histo
                Case "Courbe"
                    .ChartType = xlLineMarkers ' Courbe
                Case "Cylindre"
                     .ChartType = xlCylinderColClustered ' Cylindres
                Case Else
                    ' .ChartType = xlCylinderColClustered ' Cylindres
                    .ChartType = xlColumnClustered ' Histo
                End Select
     
            ' Initialisation echelle Mesure Indicateur : Millier, Million
            'GOLE.SeriesCollection(1) . .Verb Verb:=xlPrimary
            'Axes
              '  .Axes(xlValue).MinorUnitIsAuto = True
              '  .Axes(xlValue).MajorUnitIsAuto = True
              '  .Axes(xlValue).MinimumScaleIsAuto = True
              '  .Axes(xlValue).MaximumScaleIsAuto = True
                Select Case YScale
                Case 100
                    .Axes(xlValue).DisplayUnit = xlHundreds
                Case 1000
                    .Axes(xlValue).DisplayUnit = xlThousands
                Case 1000000
                    .Axes(xlValue).DisplayUnit = xlMillions
                Case Else
                    .Axes(xlValue).DisplayUnit = xlNone
                End Select
                .Axes(xlValue).HasDisplayUnitLabel = True
                ' Légende
                .Legend.Font.Size = 8
                .Legend.Border.Weight = 1
                .Legend.Position = xlLegendPositionRight
            End With
            'Initialisation Série
        End If
        Set RST = Nothing
        InitialisationGraphOLE = ErreurRequete
    End Function

  2. #2
    Membre régulier Avatar de GillesDeVuif
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 88
    Points : 110
    Points
    110
    Par défaut
    Bonjour.
    Je (on) n'arrive pas à visualiser la ligne en jaune.
    Quoiqu'il en soit, tu peux tester en ajoutant la propriété suivante (F1 sur ChartTitle) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If (RequeteGraphique <> "") Then 
    GOLE.HasTitle = True
    GOLE.ChartTitle.Text = TitreGraphique
    Cordialement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je vous remet le code, avec en rouge et gras le morceau du code qui pose probleme.

    Merci à tous pour votre aide.

    Code :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Public Function InitialisationGraphOLE(GraphOLE As Object, _
      RequeteGraphique As String, TitreGraphique As String, TypeGraphique As String, Optional YScale As Long = 1000)
        Dim RST As DAO.Recordset
        
        Dim GOLE As Chart
        Set GOLE = GraphOLE.object
        ErreurRequete = ""
        ' Initialisation de la requete
        If (RequeteGraphique <> "") Then
           
            If QueryDefExist("QTemp_G") Then
                DoCmd.DeleteObject acQuery, "QTemp_G"
                CurrentDb.CreateQueryDef "QTemp_G", RequeteGraphique
            Else
                CurrentDb.CreateQueryDef "QTemp_G", RequeteGraphique
            End If
            
            'MsgBox VarType(CurrentDb.OpenRecordset("QTemp_G", dbReadOnly))
            Set RST = CurrentDb.OpenRecordset("QTemp_G", dbReadOnly)
            If RST.RecordCount > 0 Then
                GraphOLE.RowSource = RequeteGraphique
            Else
                ErreurRequete = "Aucun enregistrement n'a été retourné suite à votre séléction. Le formulaire de sélection est réinitilisé sur l'indicateur par défaut."
            End If
            
            'Call DetruireRecordSetTemporaire(RST)
            DoCmd.DeleteObject acQuery, "QTemp_G"
            
        End If
        
        If ErreurRequete = "" Then
            ' Initialisation du Titre
        If (RequeteGraphique <> "") Then GOLE.ChartTitle.Text = TitreGraphique
            ' Initialisation Type Graphique
            With GOLE
                Select Case TypeGraphique
                Case "Histogramme"
                    .ChartType = xlColumnClustered  ' Histo
                Case "Courbe"
                    .ChartType = xlLineMarkers ' Courbe
                Case "Cylindre"
                     .ChartType = xlCylinderColClustered ' Cylindres
                Case Else
                    ' .ChartType = xlCylinderColClustered ' Cylindres
                    .ChartType = xlColumnClustered ' Histo
                End Select
        
            ' Initialisation echelle Mesure Indicateur : Millier, Million
            'GOLE.SeriesCollection(1) . .Verb Verb:=xlPrimary
            'Axes
              '  .Axes(xlValue).MinorUnitIsAuto = True
              '  .Axes(xlValue).MajorUnitIsAuto = True
              '  .Axes(xlValue).MinimumScaleIsAuto = True
              '  .Axes(xlValue).MaximumScaleIsAuto = True
                Select Case YScale
                Case 100
                    .Axes(xlValue).DisplayUnit = xlHundreds
                Case 1000
                    .Axes(xlValue).DisplayUnit = xlThousands
                Case 1000000
                    .Axes(xlValue).DisplayUnit = xlMillions
                Case Else
                    .Axes(xlValue).DisplayUnit = xlNone
                End Select
                .Axes(xlValue).HasDisplayUnitLabel = True
                ' Légende
                .Legend.Font.Size = 8
                .Legend.Border.Weight = 1
                .Legend.Position = xlLegendPositionRight
            End With
            'Initialisation Série
        End If
        Set RST = Nothing
        InitialisationGraphOLE = ErreurRequete
    End Function

Discussions similaires

  1. Erreur gestion excel via code VBA dans access pour importation
    Par blacklolou dans le forum VBA Access
    Réponses: 4
    Dernier message: 11/01/2013, 11h24
  2. [XL-2007] Insertion de code VBA dans du code VBA
    Par cotmar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2011, 12h35
  3. commentaire dans le code VBa sous Access
    Par yassin-59 dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2010, 11h37
  4. erreur dans le code vba
    Par jihad33 dans le forum VBA Access
    Réponses: 5
    Dernier message: 03/01/2008, 15h00
  5. Erreur dans un code VBA
    Par steevassie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2007, 21h26

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