Go Down

Topic: Arduino et visual studio (Read 10219 times) previous topic - next topic

Fredo59

#45
Jan 29, 2012, 04:39 pm Last Edit: Jan 29, 2012, 04:45 pm by Fredo59 Reason: 1
Bonjour ,

Je trouve ça super. :)
Tu progresses très bien dans ton projet.

Si je peux t'orienter, je te conseillerai de modifier (si tu ne l'a pas déjà fait) le type des champs Date et Heure et de les séparer.
Autrement dit, au lieu de créer des TEXT (x), en faire des DATETIME. Ceci pour pouvoir extraire les données en choisissant des dates a partir de calendrier

Pour extraire les données (dans la grille) au lieu de faire un :
SQL="SELECT * FROM maTable ORDER BY ID"  où le recordset rassemblais tout les enregistrements disponibles dans la table "maTable"

Tu auras 2 variables :
DateRechercheDebut = "xx/xx/xxxx"
DateRechercherFin = "xx/xx/xxxx"
SQL="SELECT * FROM maTable WHERE LeChampDate >#" & DateRechercheDebut & "# AND LeChampDate <#" & DateRechercheFin & "# ORDER BY LeChampDate"

où le recordset rassemblera tout les enregistrements compris entre les 2 dates définies.
Ensuite tu extraits le champs qui contient les mesures pour tracer tes points sur le graphique.(avec une boucle)
DO
i+=1
maMesure(i)=rs.fields("ChampMesure")
rs.movenext
loop ....

C'est juste une orientation, tu es libres bien sûr de faire autrement.

Je reste a ta disposition pour plus d'amples explications si tu en avais besoin.

Pour la base de donnée, si tu as la possibilité d'avoir une table a ta disposition dans une base SQL d'un réseau d'entreprise, ce serait la même manière de procéder sauf pour la ligne de connexion a la base (pas difficile). Moi je préfère toujours mettre ma propre base sur le serveur avec mon programme comme ça je reste indépendant, cependant si beaucoup de personnes doivent accéder a cette base en même temps, il reste préférable de passer par SQL (qui gère efficacement les accès).


Pour le graphique par contre je ne suis pas le plus approprié pour te renseigner.
Si c'était moi, par fainéantise, je me servirai d'une feuille excel (necessite d'avoir excel bien sûr) dans laquelle j'aurai créé un graphique d'après un tableau, que je remplirai automatiquement avec VB et sauvegarderai sous un nom différent afin d'avoir toujours la feuille "Modèle" vierge.
Car le graphisme sous VB n'est pas mon point fort, mais d'autres ont peut être l'expérience dans ce domaine. C'est le moment d'apprendre  :smiley-eek-blue:

Bonne continuation en tout cas... ;)

@++
L'expérience est une longue suite de bêtises...

Michel_B

#46
Jan 31, 2012, 01:44 pm Last Edit: Jan 31, 2012, 02:00 pm by Michel_B Reason: 1
Bonjour,

Je n'arrive pas trop à faire marcher un graph qui irait chercher les infos de température dans la base de données.

J'essaye de tester cette méthode :

[urlhttp://www.vbfrance.com/tutoriaux/GESTION-DONNE%20ES-VISUAL-BASIC-2008-SQL-SERVER_1133.aspx][/url]

Par contre au début j'importe un élément existant car ma base est déjà créée.

Je te tient au courant si j'arrive à en titrer qq chose ;)

++

EDIT : Une lien interessant aussi http://msdn.microsoft.com/fr-fr/library/dd489231.aspx

Fredo59

Salut,

J'ai potassé un peu les graphiques comme précisé en mp.
En fait si tu veux que cela fonctionne, il faut tout adresser par code en dynamique et surtout ne pas lier ton graphique a ta base.

J'ai réussi a faire quelques petites choses intéressante, ce soir je modifierai le programme d'exemple pour qu'il affiche un graphique et qu'il le mette a jour automatiquement a chaque nouvelle donnée entrante. (je modifierai aussi les champs "Nom" et "Prenom" en "Date" et "Valeur".

@+
L'expérience est une longue suite de bêtises...

Fredo59

J'ai modifié comme précisé précédemment mon prog pour que tu t'amuses avec.
Il ne faut plus créer la base (j'ai disable le bouton), j'ai mis quelques valeur dedans.

A chaque fois que tu ajoutes une température et une date, la base est mise a jour ainsi que le graphique.
Biensur j'ai prit le graphique de base, on peut tout modifier a souhait.

le lien qui m'a permit de piger : http://plasserre.developpez.com/cours/chart/ voir surtout en bas (le code en dynamique)

L'archive de mon prog est ici : http://perso.numericable.fr/tchonordiste/Arduino/BaseDeDonneesV2.zip

Attention au début du prog j'ai du ajouter une bibliothèque : Imports........ (ne l'oublie pas si tu copie des morceaux de code)
Le reste de la boucle est dans le sub "RemplirGrille".

Il faut savoir qu'en SQL tu envoies les dates sous la forme MM/JJ/YYYY (a l'anglaise quoi) donc quand tu la récupère, faut la remettre a l'endroit (c'est fait dans le programme)

Dis moi si t'as des soucis.

@+
L'expérience est une longue suite de bêtises...

Michel_B

#49
Jan 31, 2012, 07:54 pm Last Edit: Jan 31, 2012, 08:27 pm by Michel_B Reason: 1
Quote
e lien qui m'a permit de piger : http://plasserre.developpez.com/cours/chart/ voir surtout en bas (le code en dynamique)


J'ai testé aussi mais à la différence de toi c'est que je ne suis pas arrivé à rafraichir le graph lors de la modif de la base. Il me falait relancer l'application. Je vais éplucher tout ça pour voir comment tu as fait.

Merci et à très bientôt...  ;)

EDIT : je l'avais peut être mis dans Form1_Load tout simplement au lieu de la sub RemplirGrille. Je n'ai plus mon code pour vérifier   :~

Fredo59

La petite amélioration qu'il faudra peut-être faire c'est modifier la boucle pour qu'il affiche en graphique les 5 ou 10 dernières heures seulement des relevés pour éviter a terme d'obtenir un graphique gigantesque.

Et de prévoir un menu qui permettrai de récupérer des "archives" en sélectionnant 2 dates, lorsque le programme n'est pas en réception de données par exemple.

J'attends de voir ce que cela donne, c'est intéressant comme projet. ;)

A bientôt
++
L'expérience est une longue suite de bêtises...

Michel_B

Quote
La petite amélioration qu'il faudra peut-être faire c'est modifier la boucle pour qu'il affiche en graphique les 5 ou 10 dernières heures seulement des relevés pour éviter a terme d'obtenir un graphique gigantesque.


J'ai remis tout ça en ordre, histoire d'avoir quelque chose de fonctionnel. Je vais effectivement modifier comme tu dis et après je poste quelque chose.

Sinon en prévision des améliorations  XD , je me suis penché pour la première fois sur le code php et les bases SQL. J'ai installé WampServer et fait quelques essais concluants d'interrogation d'une base avec.
Je suppose qu'il faudra à terme créer une base sql et non access pour une interface avec le net (j'ai bon ?)

++

Fredo59

Oui tu as bon !  :D

En fait sur le net souvent ce sont des bases du type mySql.
Accessible avec des pages en php.

Et administrable via phpAdmin.
Bien sûr cela dépend de la configuration de ton hébergeur. Mais en général ce sera toujours la même chose.
Le site du Zero publie des tutos intéressants sur ce sujet : http://www.siteduzero.com/tutoriel-3-14668-concevez-votre-site-web-avec-php-et-mysql.html

Mais la syntaxe SQL sera toujours plus ou moins identique. Seul changeront les modes de connexion et de gestion.

Bon amusement
++
L'expérience est une longue suite de bêtises...

Michel_B

#53
Feb 01, 2012, 09:34 pm Last Edit: Feb 01, 2012, 10:32 pm by Michel_B Reason: 1
Bonjour,

J'ai un petit problème : J'ai créé plusieurs feuilles pour mon projet.
Le problème est que si j'ai ouvert la connection à l'arduino sur la form1, je perds la connection dans ma form2.
J'ai essayé de mettre les variables en public pour garder les données (du moins je crois  :~) mais cela ne marche pas.

C'est grave docteur ?  :smiley-mr-green:

++

EDIT : Problème résolu

Michel_B

Bonsoir,

Tu vois un problème dans ce code ?
Suivant les dates que je mets il y a un plantage.

Code: [Select]
Private Sub HistoButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistoButton.Click
        Dim SQL As String
        Dim con As ADODB.Connection
        Dim rs As ADODB.Recordset
        'Dim n As Integer
        Dim RecupDateDebut As Date  'Choix utilisateur date début du tracé
        Dim ConvDateDebut As String
        Dim RecupDateFin As Date    'Choix utilisateur date début du tracé
        Dim ConvDateFin As String
       

        RecupDateDebut = DateTimePicker1.Text
        ConvDateDebut = Format(RecupDateDebut, "MM/dd/yyyy")

        RecupDateFin = DateTimePicker2.Text
        ConvDateFin = Format(RecupDateFin, "MM/dd/yyyy")

        'Form1.Grid1.RowCount = 0
        'SQL = "SELECT * FROM Donnees WHERE LeChampDate >#" & ConvDateDebut & "# AND LeChampDate <#" & ConvDateFin & "# ORDER BY LeChampDate"

        'Ouverture de la base de donnée
        con = New ADODB.Connection
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sBaseDeDonnees & ";" & "Persist Security Info=False"
        con.Open()

        'Contrôle si il ya des enregistrements dans la base
        SQL = "SELECT COUNT(*) FROM Donnees"
        rs = con.Execute(SQL)

        'Si oui il les affiche
        If rs.Fields(0).Value <> 0 Then
            SQL = "SELECT * FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"

            rs = con.Execute(SQL)
            HistoChart.Series.Clear()
            HistoChart.Series.Add("T°")

            Do

                HistoChart.Series(0).Points.AddXY(rs.Fields("Jour").Value, rs.Fields("Température").Value)
                rs.MoveNext()

            Loop While rs.EOF = 0
        End If

        rs = Nothing
        con.Close()
        con = Nothing


    End Sub





Merci de ton aide

Fredo59

#55
Feb 02, 2012, 11:42 pm Last Edit: Feb 02, 2012, 11:53 pm by Fredo59 Reason: 1
Bonsoir,
Désolé de me connecter que maintenant, mais je m'amusais avec.................l'Arduino biensûr !!

Le seul truc que je vois de bizarre, c'est ton champ qui s'appelle "Température", le "e" accent me dérange un peu.
Soit tu as vraiment créé un champ de ce nom (alors ce n'est pas conseillé) soit tu n'as pas mis d'accent et le fait de demander un champ qui n'existe pas crée une erreur.

Pour les dénomination de champs, il faut rester assez strict pour éviter les problèmes : ne pas mettre d'espace par exemple, eviter les mot anglais ou qui ressemble a des syntaxe existante (Date, par exemple). Cela pourrait être la source de problème.


Mais il faut modifier la ligne qui contrôle les enregistrements.
En effet : tu contrôle qu'il y a des enregistrements dans la base, mais il faut contrôler qu'il y ai ce que tu cherche sinon ça plante :

Donc au lieu de :
Quote
'Contrôle si il ya des enregistrements dans la base
       SQL = "SELECT COUNT(*) FROM Donnees"
       rs = con.Execute(SQL)


Il faut mettre:
Quote
SQL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"
rs = con.Execute(SQL)


S'il trouve quelque chose alors tu l'affiches, sinon il sort de la boucle et pas d'erreur.

j'espère que mes explications ne sont pas trop brouillons...
Il faut savoir qu'a chaque requête sur ta base , il faut au préalable faire la même requête avec "COUNT(*)" pour être sûr qu'il y ait bien des enregistrements correspondants a ce que tu cherches.
Parce que si tu essayes de lire un recordset (rs) vide, cela génère une erreur. D'où l'obligation de contrôler avant d'afficher et donc il faut contrôler la même chose que ce que l'on va rechercher ! :smiley-eek-blue:

Normalement ensuite cela devrait être bon

@++
L'expérience est une longue suite de bêtises...

Michel_B

#56
Feb 03, 2012, 12:36 pm Last Edit: Feb 03, 2012, 12:42 pm by Michel_B Reason: 1
Je galère.
Cet affichage est sur une 2e feuille du projet, avec une nouvelle grille et un 2e graph, je ne sais pas si cela a son importance.

Pour faire marcher avec la requette "SQL = "SELECT * FROM Donnees ORDER by ID"" j'ai été obligé de supprimer "Grid2.RowCount = 0"
Alors que sur ma feuille1 cela fonctionne avec.

Par contre si je change les requettes par :

"SQL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"

J'obtient maintenant ceci :




Voici le code complet de la Température.vb :

Code: [Select]
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Température
   Dim sBaseDeDonnees As String = Application.StartupPath & "\Meteo.mdb" 'Ce sera le nom de notre base


   Private Sub Temperature_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       'initialisation de la grille
       Grid2.ColumnCount = 4

       Grid2.RowHeadersWidth = 5 'ça c'est la toute première colonne (on ne s'en sert pas)
       'Colonne 1
       Grid2.Columns(0).Width = 40
       Grid2.Columns(0).Name = "ID"
       'Colonne 2
       Grid2.Columns(1).Width = 100
       Grid2.Columns(1).Name = "Temperature"
       'Colonne 3
       Grid2.Columns(2).Width = 100
       Grid2.Columns(2).Name = "Jour"
       'Colonne 4
       Grid2.Columns(3).Width = 100
       Grid2.Columns(3).Name = "Heure"

       

   End Sub

   Private Sub HistoButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistoButton.Click

       Dim SQL As String
       Dim con As ADODB.Connection
       Dim rs As ADODB.Recordset
       Dim n As Integer
       Dim RecupDateDebut As Date  'Choix utilisateur date début du tracé
       Dim ConvDateDebut As String
       Dim RecupDateFin As Date    'Choix utilisateur date début du tracé
       Dim ConvDateFin As String

       

       RecupDateDebut = DateTimePicker1.Text
       ConvDateDebut = Format(RecupDateDebut, "MM/dd/yyyy")

       RecupDateFin = DateTimePicker2.Text
       ConvDateFin = Format(RecupDateFin, "MM/dd/yyyy")

       'J'ai enlevé ceci sinon cela ne fonctionne pas. Pourquoi ?
       'Grid2.RowCount = 0

       'Ouverture de la base de donnée
       con = New ADODB.Connection
       con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sBaseDeDonnees & ";" & "Persist Security Info=False"
       con.Open()

       'Contrôle si il ya des enregistrements dans la base

       'Cette requette ne fonctionne pas
       'QL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"

       'Celle çi est ok
       'SQL = "SELECT * FROM Donnees ORDER by ID"
       rs = con.Execute(SQL)
       rs.Fields.Refresh() 'on rafraichis les enregistrements
       
       'Si oui il les affiche
       If rs.Fields(0).Value <> 0 Then


           SQL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"
           'SQL = "SELECT * FROM Donnees ORDER by ID"

           rs = con.Execute(SQL)
           Chart2.Series.Clear()
           Chart2.Series.Add("T°")

           Do
               n = Grid2.Rows.Add()
               Grid2.Rows.Item(n).Cells(0).Value = rs.Fields("ID").Value
               Grid2.Rows.Item(n).Cells(1).Value = rs.Fields("Temperature").Value
               Grid2.Rows.Item(n).Cells(2).Value = Format(rs.Fields("Jour").Value, "dd/MM/yyyy")
               Grid2.Rows.Item(n).Cells(3).Value = rs.Fields("Heure").Value

               'Graphique
               ' Chart1.Series(0).Points.AddXY(Format(rs.Fields("Jour").Value, "dd/MM/yyyy"), rs.Fields("Temperature").Value)

               Chart2.Series(0).Points.AddXY(rs.Fields("Heure").Value, rs.Fields("Temperature").Value)
               rs.MoveNext()

           Loop While rs.EOF = 0
       End If

       rs = Nothing
       con.Close()
       con = Nothing

       Grid2.ClearSelection()

   End Sub

   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

   End Sub

   Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged

       TextBox1.Text = DateTimePicker1.Value

   End Sub
   Public Sub RemplirGrille()
       Dim SQL As String
       Dim con As ADODB.Connection
       Dim rs As ADODB.Recordset
       Dim n As Integer
       'On met a jour la grille (affichage des données, une manière parmis tant d'autre (graphique, liste, grille, combobox...)
       TextBox2.Text = "debut remplir grille"
       TextBox2.Text = "debut remplir grille2"
       'Grid2.RowCount = 0

       'Ouverture de la base de donnée
       '  con = New ADODB.Connection
       ' con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sBaseDeDonnees & ";" & "Persist Security Info=False"
       '  con.Open()
       TextBox2.Text = "base donnee ouverte"
       'Contrôle si il ya des enregistrements dans la base
       SQL = "SELECT COUNT(*) FROM Donnees"
       rs = con.Execute(SQL)
       TextBox2.Text = "donnees trouvees"
       'Si oui il les affiche
       If rs.Fields(0).Value <> 0 Then

           SQL = "SELECT * FROM Donnees ORDER by ID"


           rs = con.Execute(SQL)
           Chart2.Series.Clear()
           Chart2.Series.Add("T°")

           Do
               n = Grid2.Rows.Add()
               Grid2.Rows.Item(n).Cells(0).Value = rs.Fields("ID").Value
               Grid2.Rows.Item(n).Cells(1).Value = rs.Fields("Temperature").Value
               Grid2.Rows.Item(n).Cells(2).Value = Format(rs.Fields("Jour").Value, "dd/MM/yyyy")
               Grid2.Rows.Item(n).Cells(3).Value = rs.Fields("Heure").Value

               'Graphique
               ' Chart1.Series(0).Points.AddXY(Format(rs.Fields("Jour").Value, "dd/MM/yyyy"), rs.Fields("Temperature").Value)

               Chart2.Series(0).Points.AddXY(rs.Fields("Heure").Value, rs.Fields("Temperature").Value)
               rs.MoveNext()

           Loop While rs.EOF = 0
       End If

       rs = Nothing
       con.Close()
       con = Nothing
       TextBox2.Text = "fin remplir grille"
       Grid2.ClearSelection()

   End Sub
End Class

Fredo59

#57
Feb 03, 2012, 12:59 pm Last Edit: Feb 03, 2012, 01:04 pm by Fredo59 Reason: 1
Bonjour,

Normal que cela ne fonctionne ps ton code contient des erreurs.
Il faut bien distinguer ce que tu fait.

Tu veux extraire des données comprises entre 2 dates.

Alors il faut d'abord contrôler s'il existe bien des données entre ces 2 dates avec
SQL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"
rs=con.execute(SQL)

Il va te repondre combien d'enregistrement il a trouvé, s'il n'y en a pas, tu sors de la boucle

if rs.fields(0).value=0 then exit sub 'tu sors

Dans le cas contraire, tu peux effectuer réellement la recherche et afficher les données :
SQL = "SELECT * FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"
rs=con.execute(SQL)

Do
...
loop ...

Ne confond surtout pas l'instruction SQL:
1° SELECT COUNT(*)....... : te mets dans le rs (recodset) le nombre d'enregistrements trouvés correspondant a la requete
2° SELECT *....... : te mets dans le recordset tout les champs trouvés correspondant a la requete

c'est vraiment différent !

L'erreur que tu as "Aucun texte de commande...." c'est parceque tu n'as pas remplis correctement la variable SQL (commande)

Si on résume :
1° tu ouvre ta base :
Quote
con = New ADODB.Connection
       con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sBaseDeDonnees & ";" & "Persist Security Info=False"
       con.Open()


2° Tu controle d'abord que ta requete contient des données (afin d'eviter des erreurs), par exemple :
Quote
SQL="SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour


3°tu envoie la commande que tu as créé et tu mets le résultat dans un recordset
Quote
rs=con.execute(SQL)


4°Si le recordset te répond autre chose que 0, c'est que tu peux récupérer des données (ce n'est plus COUNT(*) mais * seulement)
Quote

If rs.fields(0).value=0 then exit sub
SQL="SELECT * FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour


5°tu envoie de noveau la commande que tu as créé et tu mets le résultat dans un recordset
Quote
rs=con.execute(SQL)


6° tu affiche les données (Do.....LOOP....)

Voilà, si vraiment tu n'y arrive pas, je te ferai une archive en exemple

@++

Bon courage  ;)








L'expérience est une longue suite de bêtises...

Michel_B

#58
Feb 03, 2012, 03:26 pm Last Edit: Feb 03, 2012, 03:28 pm by Michel_B Reason: 1
Humm... Ca bug toujours  :smiley-sad-blue:  pourtant il me semble avoir bien compris

Quand le code s'arrette si je mets le curseur sur le 1er recorset il marque :




Le nouveau code :

Code: [Select]
Dim SQL As String
       Dim con As ADODB.Connection
       Dim rs As ADODB.Recordset
       Dim n As Integer
       Dim RecupDateDebut As Date  'Choix utilisateur date début du tracé
       Dim ConvDateDebut As String
       Dim RecupDateFin As Date    'Choix utilisateur date début du tracé
       Dim ConvDateFin As String

       RecupDateDebut = DateTimePicker1.Text
       ConvDateDebut = Format(RecupDateDebut, "MM/dd/yyyy")

       RecupDateFin = DateTimePicker2.Text
       ConvDateFin = Format(RecupDateFin, "MM/dd/yyyy")

       ' 1° tu ouvres ta base :
       con = New ADODB.Connection
       con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & sBaseDeDonnees & ";" & "Persist Security Info=False"
       con.Open()
     
       ' 2° Tu controle d'abord que ta requete contient des données
       ' (afin d'eviter des erreurs), par exemple :
       SQL = "SELECT COUNT(*) FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"

       ' 3°tu envoie la commande que tu as créé et
       ' tu mets le résultat dans un recordset

       rs = con.Execute(SQL)


       ' 4°Si le recordset te répond autre chose que 0, c'est que
       ' tu peux récupérer des données (ce n'est plus COUNT(*) mais * seulement)

       If rs.Fields(0).Value = 0 Then Exit Sub
       SQL = "SELECT * FROM Donnees WHERE Jour >#" & ConvDateDebut & "# AND Jour <#" & ConvDateFin & "# ORDER BY Jour"

       ' 5°tu envoie de noveau la commande que tu as créé
       ' et tu mets le résultat dans un recordset

       rs = con.Execute(SQL)

       'Chart2.Series.Clear()
       'Chart2.Series.Add("T°")

       Do
           n = Grid2.Rows.Add()
           Grid2.Rows.Item(n).Cells(0).Value = rs.Fields("ID").Value
           Grid2.Rows.Item(n).Cells(1).Value = rs.Fields("Temperature").Value
           Grid2.Rows.Item(n).Cells(2).Value = Format(rs.Fields("Jour").Value, "dd/MM/yyyy")
           Grid2.Rows.Item(n).Cells(3).Value = rs.Fields("Heure").Value

           'Graphique
           ' Chart1.Series(0).Points.AddXY(Format(rs.Fields("Jour").Value, "dd/MM/yyyy"), rs.Fields("Temperature").Value)

           '  Chart2.Series(0).Points.AddXY(rs.Fields("Heure").Value, rs.Fields("Temperature").Value)
           '  rs.MoveNext()

       Loop While rs.EOF = 0


       rs = Nothing
       con.Close()
       con = Nothing

       Grid2.ClearSelection()


:~ :~

Fredo59

C'est bizarre que tu ais tant de soucis...

Je vais refaire un exemple et te poster l'archive. Je ne garanti pas que je la poste ce soir mais demain sûr  :smiley-mr-green:

@+
L'expérience est une longue suite de bêtises...

Go Up