2017-04-03 140 views
0

我有業務需要將數據從Access(2013)導出到Excel(2010 \ 13)中,然後將其分發給x個用戶。這將定期發生。我想在Access中執行儘可能多的格式化操作,並避免在Excel中創建宏並調用它們。MS Access導出爲Excel格式

這是在訪問我的數據:

Cat1 Cat2 Cat3 Item Desc 
AAA PPP QQQ WID1 Widget1 
AAA RRR KKK WID2 Widget2 
AAA RRR JJJ WID3 Widget3 
BBB DDD EEE WID4 Widget4 
BBB FFF UUU WID5 Widget5 

在Excel中,需要將數據看起來像這樣

AAA 
PPP 
QQQ 
WID1 Widget1 
RRR 
KKK 
WID2 Widget2 
JJJ 
WID3 Widget3 
BBB 
DDD 
EEE 
WID4 Widget4 
FFF 
UUU 
WID5 Widget5 

有沒有一種方法,通過在訪問數據循環,建立一個臨時表看起來像上面,然後將臨時表導出到Excel?或者將不得不導出原來的數據,然後在Excel中調用宏來執行格式化?

問候,

邁克爾

+1

您將不得不循環遍歷如圖所示的記錄,將每條記錄與前一條記錄進行比較,並將結果(如果有)寫入臨時表。然後導出臨時表。 – Gustav

+0

我該怎麼做? – Michael

+0

以兩個記錄集打開這兩個表,然後在向另一個記錄添加記錄時循環第一個表。 – Gustav

回答

1

首先,從你的榜樣,似乎你的訪問表是不歸。如果您根據樣本數據選擇不糾正該問題,則可以使用聯合查詢來完成您想要的任務。這當然取決於你如何確定要包含哪些行/列。

SELECT Cat1, NULL AS Desc FROM <yourTable> WHERE Cat1='AAA' 
UNION ALL 
SELECT Cat2, NULL AS Desc FROM <yourTable> WHERE Cat1='PPP' 
UNION ALL 
SELECT Cat2, NULL AS Desc FROM <yourTable> WHERE Cat1='QQQ' 
UNION ALL 
SELECT Item, Desc FROM <yourTable> WHERE Item='WID1' 
UNION ALL ...