gpt4 book ai didi

ms-access - 如何将两个 MS ACCESS 表导出到一个 csv 文件中而不会被覆盖?

转载 作者:行者123 更新时间:2023-12-04 20:40:57 24 4
gpt4 key购买 nike

我正在尝试将两个 MS Access 表导出到一个 .csv 文件中。我不能这样做,我可以将这两个表导出到两个不同的 csv 文件中。我需要将两个表导出到一个 csv 文件中。两个表都有不同的列数。

表 1 有以下列

f1, f2, f3, f4, f5

表2有
t1, t2, t3, t4

我试图以这种方式通过 vb 导入,但无法将两个表附加到此查询中。
我尝试以以下方式导入
DoCmd.TransferText acExportDelim, , "table1", "t1.csv", True

DoCmd.TransferText acExportDelim, , "table2", "t1.csv", False

但我得到的文件只有 table2 的记录。我无法将两个表附加到一个导出查询中,以便获得所需的结果

从 table1 我只想要标题,从 table2 我只需要导出数据。
在 MS Access 中有什么方法可以将 table1 中的标题和 table2 中的记录转换为一个 csv 文件

最佳答案

好问题!很多时候我会先创建一个查询 ,其中包含所有输出,就像我在最终输出文件中想要的那样。那我就用一个DoCmd.TransferText命令将我的查询输出到 CSV 文件。

如果您将来自两个表的数据连接在一起,您将使用所谓的 联合查询 .创建这可能会有点困惑,因为您需要自己输入 SQL,而不是在可视化查询编辑器中拖放。但是一旦你掌握了它的窍门,它并不像看起来那么复杂。

我将在这里做一些假设,并给你一个例子来说明它是如何工作的。比方说 table1只有一行,这些是您想要在输出文件中的标题:

select f1 as t1, f2 as t2, f3 as t3, f4 as t4, f5 as t5
from table1
union select t1, t2, t3, t4, '' as t5
from table2

关键因素是我们在此联合查询中合并的两个表都使用相同的列名。这就是我们使用 f1 as t1 的原因.这使得 f1列使用 t1作为其列名(通常称为别名)。

还要注意如何在 table2 ,我们没有 t5列,所以我们只使用一个空字符串并将其别名为 t5 .这允许列匹配我们在 table1 中的内容。 ,即使 table2没有此列的数据。

查看此查询时,您会注意到标题行位于查询结果中的随机位置。我们希望确保它最终成为查询中的第一行,所以让我们添加另一列,以便我们可以对结果进行排序并将标题强制到第一行。
select f1 as t1, f2 as t2, f3 as t3, f4 as t4, f5 as t5, 0 as mysort
from table1
union select t1, t2, t3, t4, '' as t5, 1 as mysort
from table2
order by mysort;

美丽的!现在标题在第一行!现在我们可以运行我们的导出命令,并将结果转储到一个 CSV 文件中:
DoCmd.TransferText acExportDelim,,"qryExample","myfile.csv", False

如果您不希望输出文件中的排序顺序列,那么只需将联合查询嵌套在另一个查询中,其中 mysort列不包括在内。

希望这可以帮助!

关于ms-access - 如何将两个 MS ACCESS 表导出到一个 csv 文件中而不会被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com