2017-04-03 18 views
0

Access(2013)からExcel(2010 \ 13)にデータをエクスポートし、x個のユーザーに配布する必要があります。これは定期的に行われます。私は、Accessで書式設定などの多くを実行し、Excelでマクロを作成して呼び出さないようにしたい。MS Access Excel形式にエクスポート

これは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 

、データがこの

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

のように見える必要があるAccessのデータをループへの道があり、一時の構築テーブルを上記のように表示してから、一時テーブルをExcelにエクスポートしますか?または、元のデータをエクスポートしてから、Excelでマクロを呼び出してフォーマットを実行する必要がありますか?

よろしく、

マイケル

+1

図のようにソートされたレコードをループして、各レコードを前のものと比較し、その結果(ある場合)を一時表に書き込む必要があります。次に、一時表をエクスポートします。 – Gustav

+0

どうすればいいですか? – Michael

+0

2つのテーブルを2つのレコードセットとして開き、レコードをもう一方のレコードに追加しながら最初のレコードをループします。 – Gustav

答えて

1

まず第一には、あなたの例から、あなたのAccessテーブルが正規化されていないようです。サンプルデータに基づいてそれを修正しないことを選択すると、ユニオンクエリーで必要なことを行うことができます。これはもちろん、どの行/列を含めるかを実際どのように決定するかによって異なります。

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 ... 
関連する問題