2013-03-14 29 views
0

我使用了Microsoft Query並向我們的MSSQL數據庫中寫入了一個查詢。查詢在MS Query中非常有用。它大約有59,000行和9列數據。當我關閉MS Query並將數據導入Excel時,它會說:「獲取數據」幾秒鐘,然後消失。實際上沒有數據顯示,但它幾乎就像Excel似乎認爲那裏有東西。Excel不會從Microsoft Query中獲取數據

我已經在Excel 2007和2010上試過了,但都做了同樣的事情。我讀過Excel 2007/10可以處理高達1,000,000行的查詢,所以我不確定它爲什麼不能在這裏工作。

+0

請張貼SQL查詢。 – 2013-03-14 19:25:03

+0

您是否嘗試過將它作爲VBA中的ADO Recordset使用_Range.Copyfromrecordset Recordset:= rs_? – 2013-03-14 19:25:58

+0

您可以在這裏查看查詢:http://pastebin.com/fufFsREm – m0ngr31 2013-03-14 19:59:18

回答

0

這裏是VBA的ADO方法可能工作...

sub getData() 
dim adoRS as object ' ADODB.Recordset 
dim adoConn as object ' ADODB.Connection 
dim sConnStr as string 

set adors=createobject("adodb.recordset") 
set adoConn=createobject("ADODB.connection") 

with adocn 
.provider="MSSQL" 
.cursorlocation=3 ' aduseclient 
.connectionstring=sConnstr ' get from UDL file in Windows Explorer 
.open 
end with 

with adors 
.source="SELECT * FROM table" 
.activeconnection=adocn 
.cursortype=1 ' adopenkeyset 
.locktype=1 ' adlockreadonly 
.cursorlocation=3 ' aduseclient 
.open 
end with 

range("A1").copyfromrecordset adors 

end sub 

我希望幫助

菲利普

+0

也許您需要將您的查詢放入存儲過程中,然後使用ADO Recordset或ADO Command返回數據,並將其放在工作表中,並使用** CopyFromRecordset ** – 2013-03-14 20:01:02

+0

我將不得不學習如何使用VBA!謝謝你的幫助。我會盡力弄清楚如何實現它。 – m0ngr31 2013-03-14 20:09:57

+0

請選擇我的答案,如果它有幫助 – 2013-03-14 20:16:55