2016-10-10 6 views
1
Public Sub Click() 

    Dim objOtherTbls As AdditionalData 

     Set objOtherTbls = Application.CreateAdditionalData 
     objOtherTbls.Add "vessels" 
     objOtherTbls.Add "Export" 

     Application.ExportXML ObjectType:=acExportTable, _ 
        DataSource:="orderSummary", _ 
        DataTarget:="pls.xml", _ 
        AdditionalData:=objOtherTbls 


End Sub 

enter image description hereネストされたXMLエクスポートは

にはどうすればネストされたXMLを作るのですか、重複するフィールドは、一度だけ繰り返しますか?私はテーブルをマージし、一度だけ、各船名を持っており、以下のとおりとしてタブ付きその容器の項目のすべてのために、前述したようにそれらを作るにはどうすればよい

I would like something like: 

<vessels> 
    <vessels ID> 
     <product Id> 
     <quantity> 
     <product Id> 
     <quantity> 
     <product Id> 
     <quantity> 

答えて

1

のアクセスは、エクスポート時、親/子階層を識別するための「関係」を使用していますXMLへ。あなたのデータベースには明らかに[船舶]と[輸出]の関係がないので、質問に表示されるように2つのテーブルの「フラット」なXMLエクスポートが得られます。

データベースへのリレーションシップを追加する場合...

Relationships.png

...そしてあなたが求めている "ネストされた" XMLエクスポートを取得します:

<vessels> 
    <vessel_id>2</vessel_id> 
    <vessel_name>B</vessel_name> 
</vessels> 
<vessels> 
    <vessel_id>3</vessel_id> 
    <vessel_name>C</vessel_name> 
    <Export> 
    <product_id>10</product_id> 
    <Quantity>10</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
    <Export> 
    <product_id>100</product_id> 
    <Quantity>20</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
    <Export> 
    <product_id>1000</product_id> 
    <Quantity>1</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
    <Export> 
    <product_id>10000</product_id> 
    <Quantity>10</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
    <Export> 
    <product_id>10001</product_id> 
    <Quantity>20</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
    <Export> 
    <product_id>10002</product_id> 
    <Quantity>10</Quantity> 
    <vessel_id>3</vessel_id> 
    </Export> 
</vessels> 
0

ここで(SQL DDLは、ANSI-92クエリモードが必要ですが、アクセスGUIツールを使用して再現することができます)迅速なスケッチです:

CREATE TABLE vessels 
(vessel_id INT NOT NULL UNIQUE, 
    vessel_name CHAR(1) WITH COMPRESSION NOT NULL UNIQUE); 

CREATE TABLE Export 
(product_id INT NOT NULL UNIQUE, 
    Quantity INT NOT NULL, CHECK (Quantity >= 0), 
    vessel_id INT NOT NULL 
    REFERENCES vessels (vessel_id)); 

INSERT INTO vessels VALUES (1, 'A'); 
INSERT INTO vessels VALUES (2, 'B'); 
INSERT INTO vessels VALUES (3, 'C'); 
INSERT INTO vessels VALUES (4, 'D'); 
INSERT INTO vessels VALUES (5, 'E'); 

INSERT INTO Export VALUES (10, 10, 3); 
INSERT INTO Export VALUES (100, 20, 3); 
INSERT INTO Export VALUES (1000, 1, 3); 
INSERT INTO Export VALUES (10000, 10, 3); 
INSERT INTO Export VALUES (10001, 20, 3); 
INSERT INTO Export VALUES (10002, 10, 3); 
関連する問題