首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

excel2007 内存不足,画面不能正常显示,该怎么处理

2012-03-09 
excel2007内存不足,画面不能正常显示excel2007内存不足,画面不能正常显示我做了一个vba工具,从db批量检索

excel2007 内存不足,画面不能正常显示
excel2007 内存不足,画面不能正常显示

我做了一个vba工具,从db批量检索数据,
然后针对检索出来的每一条数据,印刷50个画面也就是50个sheet页(每个sheet页也从db检索数据),
当印刷完前面几条数据后,就出异常,显示内存不足,然后excel画面就显示不全,变白了。
请问大虾们,谁遇到过这情况,怎么解决的。

我采用了以下方式,还没找到原因:
1:增大虚拟内存
2:每执行完一次就清空剪切板。

我接下来准备调查是不是访问db过于频繁的问题

[解决办法]
看是不是定时器周期太短,查询时间太长,可以考虑阻塞的方式,发现上一次timer_tick没执行完就不执行操作,例如这样,加个标记

VB.NET code
private running as booleen = falsepublic sub Timer1_Tick()    if running then exit sub    running = true    '你的 操作    running = falseend sub
[解决办法]
Sub Select_Sql() '定义过程名称
Dim strSQL315 As String
Dim strSQL316 As String
Dim strSQL320 As String

strSQL315 = "SELECT year(getdate())"
strSQL316 = "SELECT month(getdate())"
strSQL320 = ""SELECT day(getdate())"

 GetStoreInf strSQL315, "315"
 GetStoreInf strSQL316, "316"
 GetStoreInf strSQL320, "320"
end sub

Function GetStoreInf(ByVal SheetNo As String, TheNo As String)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCn As String, strSQL As String 
strCn = "Provider=sqloledb;Server= ;Database= ;Uid=sa;Pwd=;"
'strSQL = SheetNo
cn.Open strCn
rs.Open SheetNo, cn 
Set sht = ThisWorkbook.Worksheets(TheNo)
sht.Cells.Clear
For i = 1 To rs.Fields.Count
sht.Cells(1, i) = rs.Fields(i - 1).Name
Next
sht.Range("A2").CopyFromRecordset rs
rs.Close
cn.Close
 strSQL = ""
 strCn = ""
 End Function


有问题你再PM嘛

热点排行