3

我想合并两个表,但我的问题是我希望代码识别未来的条目。我希望它能够对新样本进行排序并将字段重命名为(_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 的最大可能计数。在您的示例中,它是 3(来自 ID #1)。我们称它为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 回答