求助 Excel VBA copy recordset 的瓶頸

來源: laboys2008 2008-07-05 14:56:15 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (999 bytes)
最近有一個棘手的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

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”