Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Visual Basic] Création de graphiques sous Access

15 mars 2010 à 10:48:58

Bonjour,

Je travaille en ce moment sur Microsoft Access pour pouvoir controler une base de données (dans le cadre d'un stage).
J'utilse ainsi le Visual Basic qui est un langage nouveau pour moi, d'où mes difficultés à résoudres certains problémes.


J'essais actuellement de créer un graphique à partir d'une requete SQL simple. Le probléme c'est que le graphique s'affiche parfaitement en mode formulaire et s'atualise correctement lorsque je change ma requête, mais ce n'est pas le cas en fonctionnement normal ( le projet s'articule autour de plusieur formulaire reliés ensemble, donc j'ouvre ce projet a partir d'une page "Menu").

Visiblement le probléme vient du fait que le graphique ne s'affiche pas tant qu'un autres formulaire (qui utilise des informations de la BDD) en ouvert, même en arriére plan.

Pour que le graphique fonctionne, il faut réduire ces pages ce qui pose de gros probléme.

Le graphique, dans ce cas la, reste vide . L'espace qui doit contenir le graphique reste blanc et rien, même pas les axes, ne s'affiche.


J'espere que vous pourez m'aider à résoudre mon probléme sur le quel je travaille depuis plusieurs jours et aucunes solution n'a été trouvé sur internet.

Merci d'avance

Je vous donne aussi le code qui fait la requête...
Dim SQL2 As String
      If Me.chkSectAct Then 'on a choisi une categorie
         If Me.cmbSectAct.Value = "ASSERVISSEMENT" Then
             SQL2 = "SELECT ALL mois, ASSERVISSEMENT FROM ResultatsPlus3mois ORDER BY chiffre "
         ElseIf Me.cmbSectAct.Value = "COMMANDE NUMERIQUE" Then
             SQL2 = "SELECT ALL mois, COMMANDE_NUMERIQUE FROM ResultatsPlus3mois ORDER BY chiffre "
         ElseIf Me.cmbSectAct.Value = "AUTOMATISME" Then
             SQL2 = "SELECT ALL mois, AUTOMATISME FROM ResultatsPlus3mois ORDER BY chiffre "
         ElseIf Me.cmbSectAct.Value = "METROLOGIE" Then
              SQL2 = "SELECT ALL mois, METROLOGIE FROM ResultatsPlus3mois ORDER BY chiffre "
         ElseIf Me.cmbSectAct.Value = "VISSAGE" Then
               SQL2 = "SELECT ALL mois, VISSAGE FROM ResultatsPlus3mois ORDER BY chiffre "
          ElseIf Me.cmbSectAct.Value = "ROBOTIQUE" Then
              SQL2 = "SELECT ALL mois, ROBOTIQUE FROM ResultatsPlus3mois ORDER BY chiffre "
          ElseIf Me.cmbSectAct.Value = "AUTRES" Then
              SQL2 = "SELECT ALL mois, AUTRES FROM ResultatsPlus3mois ORDER BY chiffre "
          Else
                SQL2 = "SELECT ALL mois, ASSERVISSEMENT, COMMANDE_NUMERIQUE, AUTOMATISME, METROLOGIE, VISSAGE, ROBOTIQUE, AUTRES FROM ResultatsPlus3mois ORDER BY chiffre "
       
          End If

    Else  'on a pas choisi de catégorie

      SQL2 = "SELECT ALL mois, ASSERVISSEMENT, COMMANDE_NUMERIQUE, AUTOMATISME, METROLOGIE, VISSAGE, ROBOTIQUE, AUTRES FROM ResultatsPlus3mois ORDER BY chiffre "
    End If
    
    Me.graph.RowSource = SQL2 'on envoi tout sur le graph
    Me.graph.Requery
  • Partager sur Facebook
  • Partager sur Twitter
16 mars 2010 à 15:12:43

Bon, j'ai réussi a trouver une parade à ce probléme...

Pour provoquer le chargement du graphique, il suffit de faire une action sur une autre page ( par exemple afficher le contenu d'un dossier deja ouvert ( facile quand il est present sur la barre de tache ^^)).

Cette action a pour effet d'afficher aussitot le graphique.
Il faut faire cette maipulation a chaque fois que l'on veut charger, ca prend 3ou 4 secondes mais bon ca marche ^^

Si quelqu'un sait pourquoi ca marche grâce à ca, je suis preneur...

Lord Celestis
  • Partager sur Facebook
  • Partager sur Twitter
19 février 2025 à 15:09:43 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


19 février 2025 à 16:08:59

@OlivierGATTEL Bonjour, merci de ne pas déterrer d'ancien sujet pour une nouvelle question qui n'a rien à voir avec la question d'origine.

Créer votre propre sujet, en expliquant le contexte, en nous indiquant le code que vous avez écrit, une description de ce qui ne fonctionne pas et où vous avez des difficultés ainsi que les recherches que vous avez effectuées pour trouver une solution.

Indiquer "Besoin d'aide" n'est pas suffisant!!

Je ferme ce déterrage.

Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter