将Access导出为CSV格式

3

我希望能将Access查询导出为CSV文件。为此,我正在使用在Stack Overflow上以前的讨论中提供的以下格式。

Function ExportQuery()
    DoCmd.TransferText acExportDelim, , "[your query]", "[output file].csv"
End Function

我获得了CSV文件的输出,但是数据在表格的列中分隔。我希望将所有列中的数据以分号分隔后放在第一列中。请尽快回复。

1
我不明白你在问什么。你说的“数据在工作表的列中分隔”是什么意思?而且我完全不理解你下一句话,“我想要所有列中第一列本身用分号分隔的数据”。这毫无意义。 - HK1
2个回答

8
我得到了我问题的答案。
如果您想要放置任何分隔符,比如逗号、分号等等,
双击查询或表格,您想要导出哪一个。然后在文件选项卡中单击“导出”。给文件命名并选择文本文件(Access 2003)。然后单击“全部导出”。导出文本向导将打开。选择分隔符单选按钮,然后单击“高级”。然后选择您想要的字段分隔符。并选择文本限定符为none。然后选择“另存为”,并给出规范的名称。并完成整个过程,就像您在手动过程中所做的那样。保存之后关闭CSV和访问两个文件。
保存规范名称之后,VBA代码如下:
Function ExportQuery()
     DoCmd.TransferText acExportDelim,"Specification Name" , "[your query]", "[output file].csv"
End Function

所以只需在代码中添加“规格名称”。

1
请注意,此代码仅适用于表格,因为第三个参数是“TableName”。如果您想从查询中导出数据,则需要使用DAO.QueryDef。请参考此帖子:https://dev59.com/r2Uq5IYBdhLWcg3wMNqu - Lionel T.
对我来说,第三个参数是查询的名称,它可以正常工作。顺便说一下,如果你想包括列标题,即使你认为已经在规范中选择了该选项,你仍需要将True作为第五个参数包含进去。请参阅DoCmd.TransferText method (Access) - R.D. Alkire

0

使用此处的Java代码可以轻松地将Access数据库导出为csv文件:

https://github.com/NACHC-CAD/access-to-csv-tool

这段代码包括测试代码中的完整示例,并对nortwinds数据库进行了完全导出。
请参见AccessToCsvUtil类,了解将单个表格转换为.csv文件的代码。
请参见WriteToCsvIntegration测试类以查看导出数据库中所有表的代码。
此实用程序基于ucanaccess jdbc工具和Apache commons-csv工具。
    <dependency>
        <groupId>net.sf.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>4.0.4</version>
    </dependency>


    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.8</version>
    </dependency>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接