laboys20082008-07-05 22:56:15
最近有一个棘手的project,就快完工了,可是却遇上一个不可逾越的障碍,作了好些
research,好像microsoft目前还没有解决这个问题。

任务很简单,把一个SQL Stored Procedure的return results 放到Excel spreadsheet
。下面是简单的一段code
Set cmdCommand = New ADODB.Command
cmdCommand.ActiveConnection = CurrentProject.Connection
cmdCommand.CommandType = adCmdStoredProc
cmdCommand.CommandText = "strDTPastDue"
Set rsData = New ADODB.Recordset
rsData.Open cmdCommand.Execute

objExcel.ActiveSheet.Range("A5").CopyFromRecordset rsData

一般情况下运行良好,可是只要database的某一个field (text) 太长(超过250char)
的话就出error了(好像CopyFromRecordset自动把很长的text当作Arary或是其他的
object了),copyFromRecordset handle不了。试过其它的办法,用loop方式一个field
一个field的放到spreadsheet里(等于自己写了一个CopyFromRecordset function),
error没有了,可是速度又奇慢,一千个record居然要run 30min. 不知道各位牛人可否
以遇到过这个瓶颈, 有没有好的解决方法吗?
westmont2008-07-06 02:05:38
Can u output to a temp text file and then inport it to Excel?
laboys20082008-07-06 04:29:46
试过了,反而更慢
bigdonald2008-07-07 20:14:37
记录集的容量是不得不考虑的问题。
大平洋2008-07-07 20:33:25
不知道你的code是咋写的
laboys20082008-07-08 09:03:36
回复:不知道你的code是咋写的