最近有一個棘手的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. 不知道各位牛人可否
以遇到過這個瓶頸, 有沒有好的解決方法嗎?
求助 Excel VBA copy recordset 的瓶頸
所有跟帖:
•
Can u output to a temp text file and then inport it to Excel?
-westmont-
♂
(0 bytes)
()
07/05/2008 postreply
18:05:38
•
試過了,反而更慢
-laboys2008-
♂
(0 bytes)
()
07/05/2008 postreply
20:29:46
•
不知道你的code是咋寫的
-大平洋-
♂
(45 bytes)
()
07/07/2008 postreply
12:33:25
•
回複:不知道你的code是咋寫的
-laboys2008-
♂
(113 bytes)
()
07/08/2008 postreply
01:03:36
•
記錄集的容量是不得不考慮的問題。
-bigdonald-
♂
(309 bytes)
()
07/07/2008 postreply
12:14:37