2009-11-26 5 views
1

J'ai un code au moment de dessiner un graphique basé sur les valeurs d'une série de zones de texte sur un formulaire d'accès.graphique sur un formulaire d'accès

Je suis heureux avec le code et comment cela fonctionne, mais je ne suis pas convaincu que c'est la façon la plus efficace de le faire. Le graphique prend environ 1,2 secondes à redessiner chaque fois. Le formulaire n'est pas lié, il récupère simplement les valeurs des zones de texte. Juste pour vérifier je l'ai eu pour boucler et vider les valeurs de boîtes de texte à debug.print et cela l'a fait immédiatement ainsi il ne peut pas être cela.

je soupçonne qu'il tente de redessiner le graphique après chaque valeur est ajoutée. Y a-t-il une manière plus rapide de faire ceci dans VBA ou suis-je coincé avec lui?

'************************** 
     '** Draw the Call Deviation graph ** 
     '************************** 
     .cells(1, 1) = "Start Time" 
     .cells(1, 2) = "Deviation" 
     lRT_actual = 0 
     lRT_forecast = 0 
     For i = 1 To 48 
      lRT_actual = lRT_actual + Me.Controls("txtActual_" & i) 
      lRT_forecast = lRT_forecast + Me.Controls("txtForecast_" & i) 
      .cells(i + 1, 1) = Format(DateAdd("n", (i - 1) * 15, "08:00:00"), "HHMM") 

      .cells(i + 1, 2) = lRT_actual - lRT_forecast 

      If Me.acxProgress_bar.Value + 2 < 100 Then 
       Me.acxProgress_bar.Value = Me.acxProgress_bar.Value + 2 
      Else 
       Me.acxProgress_bar.Value = 90 
      End If 
     Next i 

Merci pour votre aide

Répondre

2

Serait-il possible pour vous d'ajouter les valeurs à un tableau et le graphique qui?

+0

Je ferai un refactoring rapide du code pour faire un test. Cela signifierait quand même faire une table temporaire qui semble un peu exagérée mais si c'est globalement plus rapide, alors qu'il en soit ainsi! –

+0

La table temporaire peut être vidé et rempli à nouveau, ce qui en fait une, euh, table temporaire permanente. – Fionnuala

+0

Pourquoi ne pas utiliser un QueryDef stocké qui extrait les valeurs des contrôles? –

Questions connexes