2009-11-26 28 views
1

我现在有一些代码根据访问表单上的一系列文本框的值绘制图表。访问表格上的图形

我很高兴的代码和它是如何工作,但我不认为它是这样做的最有效的方式。该图需要大约1.2秒来重新绘制每次。表单没有绑定,所以它只是从文本框中获取值。只是为了检查我是否通过循环并将文本框值转储到debug.print,并且立即执行,所以它不能。

我怀疑它试图重新绘制图表将每一个值后。在VBA中执行此操作有更快捷的方法,还是我坚持使用它?

'************************** 
     '** 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 

感谢您的帮助

回答

2

才有可能为您的值添加到表格和图形是什么?

+0

我会做一个代码的快速重构来做这个测试。这将意味着如何做一个临时表,看起来有点超过顶部,但如果它总体上更快,那就这样吧! – 2009-11-26 15:50:21

+0

临时表可以清空并重新填充,使其成为永久性临时表。 – Fionnuala 2009-11-26 15:52:07

+0

为什么不使用存储的QueryDef来从控件中提取值? – 2009-11-26 23:25:20