3

2つのテーブルをマージしたいのですが、私の問題は、コードに将来のエントリを認識させたいということです。新しいサンプルを並べ替えて、フィールドの名前を(_1、_2、…そして続行)に変更する機能が必要です。これらは私のテーブルです:

Table1    
    ID  F_Name  L_Name  Addr    Phone
    1   A1      A2      A3      A4
    2   B1      B2      B3      B4
    3   C1      C2      C3      C4

Table2
ID  Date    Smpl    Color
1   D1      D2      D3
2   E1      E2      E3
1   F1      F2      F3
1   G1      G2      G3
3   H1      H2      H3
2   I1      I2      I3

そして、マージされたテーブルを次のように表示します。

Results:
ID  F_Name  L_Name  Addr    Phone   Date_1  Smpl_1  Color_1 Date_2  Smpl_2  Color_2 Date_3  Smpl_3  Color_3
1   A1      A2      A3      A4      D1      D2      D3      F1      F2      F3      G1      G2      G3
2   B1      B2      B3      B4      E1      E2      E3      I1      I2      I3          
3   C1      C2      C3      C4      H1      H2      H3  

混乱していて、正しい結果が得られません。クエリコードを手伝ってもらえますか?表2のデータを追加し、古い順序から新しい順序に名前を変更したい。本当にありがとうございました。

4

1 に答える 1

0

VBA を使用するのが最も簡単です。順を追って説明しますが、各ステップのコマンドと構文を調べる必要があります。


最初に、表 2 から任意の ID の最大可能数を決定します。サンプルでは、​​(ID #1 から) 3 です。これを N とします。

ここで、「DROP TABLE」クエリを実行します。これを表 3 と呼びます。

次に、"CREATE TABLE" クエリを実行し、N を使用してフィールド カウントをベースにします。これをテーブル 3 と呼びます。

次に、UPDATE クエリを使用してテーブル 2 のフラグをリセットします。

テーブル 1 からテーブル 3 を使用して追加クエリを実行します。

次の 2 つのステップを N 回ループします。

ID フィールドを介してテーブル 2 と 3 をリンクする更新クエリを実行します。このクエリは、最初のグループ化オプションを使用し、テーブル 2 のセット フラグ フィールドに基づいてレコードを除外します。これにより、テーブル 3 の Date_N / Smpl_N / Color_N フィールドが更新されます。上記と同じ基準で別の更新を実行しますが、表 2 のフラグを設定します。


ここで行っていることは、フラグが立てられていない各人の最初の記録を取得し、その情報を使用して記録を更新することです。次に、更新に使用したレコードにフラグを立てて、次のパスでスキップされるようにします。

于 2012-12-06T02:59:00.537 に答える