2016-02-27 87 views
0

我對Excel VBA稍微有點新。我正在處理現有的Excel工作表,通過存儲過程從SQL Server表中檢索數據。它目前只是在電子表格中顯示數據。我希望能夠通過值(0或1)進行排序,並將結果打印爲組,第一組0,然後組1,並在組之間重複標題。謝謝使用VBA對結果進行排序和組合

+0

吉姆,舉一些你到目前爲止嘗試過的例子。這將鼓勵人們提供更多幫助。 – pczeus

回答

1

要求SQL爲您做這件事:或者更改服務器上的存儲過程以允許排序參數。 。

或者,您也可以在存儲過程的結果存儲在表變量,結果有進行排序(如果你不能改變存儲過程這將這樣的工作:

declare @t table 
    (
    Column1 int, 
    Column2 bit, 
    Column3 nvarchar(100), 
    Column4 nvarchar(100), 
    Column5 nvarchar(100), 
    Column6 int, 
    Column7 nvarchar(100), 
    Column8 nvarchar(max), 
    Column9 bit 
    ) 

insert into @t 
     exec sys.sp_who 

select * 
from @t as t 
order by Column3 

正如您的評論的要求,我詳細一點的回答上面的代碼是T-SQL:https://en.wikipedia.org/wiki/Transact-SQL 如果您想了解SQL那麼下面的網站可以有很大的幫助: http://www.w3schools.com/sql/default.asp

基本上,T -SQL(上面的代碼)就是你所說的d到SQL Server,以告訴服務器您想要檢索哪種數據。換句話說,這是Excel發送給服務器並獲取數據的回報。有幾種不同的方式來實現這一目標:

  1. 第一種可能性是使用Data標籤直接在Excel中的以下文章中描述:http://kildrummy.com/how-to-pulling-export-data-into-excel/注意,屏幕截圖,在一個名爲Connection Properties窗口底部。你可以清楚地看到Command Type被設置爲SQL,Command Text是SQL代碼(就像我上面給出的例子)。
  2. 從SQL Server獲取數據的第二個選項是VBA。以下Q & A是一個示例:如何實現:Accessing SQL Database in Excel-VBA再一次,您可以在VBA中注意VBA代碼中的`strSQL'字符串,其中包含發送到SQL Server的SQL命令。
+0

這是什麼語言?我的VBA2008/6.5不知道它。 –

+0

@PaulOgilvie爲了向您展示如何在Excel工作簿中使用/實現解決方案,我擴展了自己的答案。但是,你應該知道上面的代碼僅僅是一個例子。我不知道您的服務器的名稱,也不知道您從服務器(或存儲過程)獲得的數據。因此,您必須修改上面的代碼**示例**以匹配您想要檢索的實際數據。 – Ralph

+0

謝謝,我不知道如何在這裏添加代碼,它不適合在評論部分(對不起,完成這個論壇的結論。數據檢索和顯示沒問題,只是在一個部分。我想排序它通過一個字段,並顯示在兩個組中,首先是值0,然後是值爲1的那些,標題重複(並添加了字段描述的標題 – Jim