返回列表 上一主題 發帖

[發問] VBA 的SQL語法請教各位懂SQL的大大

[發問] VBA 的SQL語法請教各位懂SQL的大大

一、當取得SQL的資料後(已經得到資料),用哪一種語法,能夠最快速的將資料輸出至excel
EX:rng陣列輸入的方式,因該是:range("a1").resize(ubound(rng),ubound(rng,2)).value=rng
可是SQL取得資料後無法使用此語法,不曉得高手大大們都是用哪一種語法
小弟只懂得下列2種語法,請問有更快速的輸出語法嗎?或是從哪邊可以得知相關的說明網站
conn為ADODB.Connection
1
ActiveSheet.Range("a1").CopyFromRecordset conn.Execute(strSQL)
2
Rng = conn.Execute(strSQL).GetRows  '轉為陣列(相反的)
Range("a1").Resize(UBound(Rng, 2) + 1, UBound(Rng) + 1).Value = Application.Transpose(Rng)


二、當取得SQL的資料後(已經得到資料),用哪一種語法,能夠最快速的將資料轉換為陣列
小弟只會用getrows的方法轉換為陣列(但還需要轉置,才是正常的順序)
或是不用轉換為陣列,要如何讀取出此值(在不輸出至excel儲存格上的情況之下,因為輸出之後再讀取實在太慢而且不便)
PKKO

回復 2# joey0415


    感謝大大,您建議的方式也是我目前正在使用的方式

另外您轉po的文章,也有幫助
下方code,我並不曉得可以用這種方式,讀取資料
Set rs = conn.Execute(strSQL)
[E1] = rs.Fields(0)

但此方式只能讀取Fields欄位
無法將整個查詢的結果都讀取
小弟只研究出GetRows的方式可以轉為陣列
不過還要轉置,因此會多花一些時間
不曉得大大有別的方法嗎?
PKKO

TOP

回復 4# joey0415


    感謝大大
PKKO

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題