首页 > 解决方案 > 如何从 Access 正确导出为 utf-8 csv,修复格式问题

问题描述

问题:想要直接从 MS Access 2016 导出到 UTF-8 csv 文件,但存在格式问题。从 Access 导出到 Excel 然后手动保存为 UTF-8 CSV 文件的文件可以正常工作,但我想消除我的用户创建 csv 文件必须执行的额外步骤。

CSV 文件的布局由我们提供此数据的组织决定。

我们有一个我们分发的音乐 CD 的 Access 2016 数据库。第一列是艺术家,其格式为姓氏、名字(例如:Presley、Elvis)。从 Excel 保存到 csv 时,Excel 知道用双引号对其进行格式化:“Presley, Elvis”。
接下来的列是基本信息,如 UPC、目录号、价格。这些不应被双引号括起来。

一列是日期,格式为 m-DDD-yy 格式(例如 31-Dec-18)。这会正确导出到 Excel,并在从 Excel 保存到 UTF-8 csv 时,格式也正确。

最后一列是描述,可能固有地包含双引号(例如:“猫王是传奇,”Jane Doe 说)。从 Excel 保存到 UTF-8 csv 时,它会正确转换为三重双引号(“”“Elvis is Legend”,“”)。当然,该字段需要用双引号分隔。

回到 Access,当我设置导出模板时,我可以选择是否有分隔符,但不是有条件的。日期可以设置为dmy,但不能用三字母缩写;此外,它带有 0 的时间戳和 4 位数年份的日期。系统不会自动在现有报价周围添加额外的报价。我已经创建了一个表,用于在导出到 Excel 之前将这些数据临时存储在访问中,以允许导出整个描述。否则它将被截断为 255 个字符。我想我可以将日期字段设为文本字段并将数据保存为格式化文本。我想我可以对 Artist 字段做同样的事情。描述字段有问题。

当 Excel 设计人员想通了 Access 后,为什么它会变得如此困难?有没有一种方法可以编辑导出规范,而无需每次都通过向导,并仔细复制我创建的导出规范?

问题似乎出在出口规范中。唯一的实际代码是:

DoCmd.TransferText acExportDelim, "UTF8 Full Catalog Export Specification", "FullCatalogListing", "C:\Temp\FCLTest.csv", True, , 65001

标签: csvms-accessexport-to-csv

解决方案


推荐阅读