求助 Excel VBA copy recordset 的瓶颈

最近有一个棘手的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. 不知道各位牛人可否
以遇到过这个瓶颈, 有没有好的解决方法吗?

所有跟帖: 

Can u output to a temp text file and then inport it to Excel? -westmont- 给 westmont 发送悄悄话 (0 bytes) () 07/05/2008 postreply 18:05:38

试过了,反而更慢 -laboys2008- 给 laboys2008 发送悄悄话 laboys2008 的博客首页 (0 bytes) () 07/05/2008 postreply 20:29:46

不知道你的code是咋写的 -大平洋- 给 大平洋 发送悄悄话 (45 bytes) () 07/07/2008 postreply 12:33:25

回复:不知道你的code是咋写的 -laboys2008- 给 laboys2008 发送悄悄话 laboys2008 的博客首页 (113 bytes) () 07/08/2008 postreply 01:03:36

记录集的容量是不得不考虑的问题。 -bigdonald- 给 bigdonald 发送悄悄话 (309 bytes) () 07/07/2008 postreply 12:14:37

请您先登陆,再发跟帖!