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