Bonjour,
Mon projet est le suivant :
Je dois développer une application qui permet de visualiser l’évolution d’un nombre d’indicateurs en fonction du temps (Date).
Pour cela j’utilise un formulaire dans lequel j’ai intégré différentes listes déroulantes qui permettront aux futurs utilisateurs de filtrer les données qui les intéressent. S'y trouve également un graphique.
(J’ai choisi Access car je travaille sur un très grand nombres de données (>400000 lignes) Donnée provenant d’une base interbase !
Actuellement j’arrive à afficher les valeurs sur le graphique en fonction de ma requête.
Pour arriver à ce résultat, j’utilise une requête qui rassemble toutes les données et c’est à travers ma requête SQL que je pointe sur ces données.
Dans une version très allégée j’ai le code suivant :
Cette solution n’est pas tout a fait satisfaisante car je souhaite pouvoir compter le nombre d’enregistrements, mais aussi faire des calculs ou encore pouvoir exporter les données qui sont la base de mon graphique dans un fichier Excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub cmd_ActualiserMaSelection_Click() Dim strSQL As String '(Initialisation des variables .) strSQL = "SELECT InfoAppareil.ID_Appareil, ResultIsoOffset.U_Offset" strSQL = strSQL & " FROM Req_ISOOFFSET_EVOLUTION_Affichage_graphique " strSQL = strSQL & " WHERE " & strFournisseurCapteur & " And DateModif Between " & strDateDebut & " AND " & strDateFin & " " Me.Gra_EvolutionIsoOffset.RowSource = strSQL Me.Gra_EvolutionIsoOffset.Requery End Sub
Je pense que l’unique solution est de passer par la méthode « Recordset ».
Mon nouveau programme fonctionnera de la manière suivante.
1) Sélection des filtres
2) Exécution de la requête SQL (bouton cmd_ActualiserMaSelection)
3) Création d’une table tampon
4) Récolte les données filtrées (TABLE_Tampon)
5) Pointage du graphique vers TABLE_Tampon)
Je bloque au point 4 !
Mon code est le suivant :
Ce code ne fonctionne pas encore tout à fait!
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 Private Sub cmd_ActualiserMaSelection_Click() Dim QR As Recordset Dim CurRecQuery As Recordset Dim RecTabCible As Recordset Ret = False Set DB = CurrentDb Dim strSQL As String '(Initialisation des variables suite .) strSQL = "SELECT InfoAppareil.ID_Appareil, ResultIsoOffset.U_Offset" strSQL = strSQL & " FROM Req_ISOOFFSET_EVOLUTION_Affichage_graphique " strSQL = strSQL & " WHERE " & strFournisseurCapteur & " And DateModif Between " & strDateDebut & " AND " & strDateFin & " " Set CurRecQuery = DB.OpenRecordset(strSQL) RecTabCible = DB.OpenRecordset("select * from TABLE_Tampon") If CurRec.RecordCount <> 0 Then CurRecQuery.MoveFirst RecTabCible.MoveFirst Do While CurRecQuery.EOF = False For Each FLD In CurRecQuery.Fields RecTabCible![FLD] = CurRecQuery![FLD] 'faire un update Next FLD CurRecQuery.MoveNext RecTabCible.MoveNext Loop Ret = True End If AtributBool_Existant = Ret Me.Gra_EvolutionIsoOffset.RowSource = strSQL Me.Gra_EvolutionIsoOffset.Requery End Sub
Avez vous une idée? qu'en pensez vous?
merci
Partager