在 Access 2007 CSV 导出中:禁用科学记数法

Posted

技术标签:

【中文标题】在 Access 2007 CSV 导出中:禁用科学记数法【英文标题】:In Access 2007 CSV Export: Disable Scientific Notation 【发布时间】:2009-02-18 04:14:33 【问题描述】:

从 Access 2007 导出 CSV 时,它会自动将小数转换为科学记数法。

不幸的是,接收它们的工具将这些字段视为文本,并按原样显示。

导出的值来自针对某些 Excel 链接表运行的查询,它们完美地显示在查询视图中。

有什么方法可以禁用自动转换为科学计数法。

即如果它在查询中显示为 0.007,它将在输出 csv 中显示为 0.007 而不是 7E3?

注意:我只能为此使用 Excel 和 Access。尽管我很想切换到 SQL Server,但如果我把它放在她的工作笔记本电脑上,我妻子会不高兴的!

【问题讨论】:

【参考方案1】:

你有几个选择:

您可以直接在查询中使用Format() function 来强制将违规列中的数据格式化为某种方式,例如:

SELECT ID, Format([Price],"standard") as Pricing FROM ORDERS;

您可以在 VBA 中编写自己的 CSV 导出例程。 我最近发布了一个回复this question。

您可以轻松地修改代码以某种方式格式化数字类型。 如果您不知道怎么做,请告诉我,我会修改代码并在此处发布。

【讨论】:

对我来说,使用 Format() 仅在我将数字缩减到更少(两位)小数时才有效。超过两位小数时,即使我使用“通用数字”进行格式化,导出文件中仍使用科学计数法。上面链接的自己的 CSV 导出例程对我有用,即使小数点超过两位。【参考方案2】:

您可以在 access 中编写少量 VBA 代码以从链接表或 Access 查询中查询数据并将其写入文本文件,从而创建您自己的 .CSV 并超越“向导”。我从不太喜欢 Access 的导出“向导”,只是自己创建了文件。

【讨论】:

确认!我很久没有接触过 VBA,但这里有一个小伪代码: ' Open query in an ADODB.Recordset ' Open a file for writing using native VBA file I/O。 ' 遍历 Recordset,写入 Recordset 中的所有字段。连接您自己的引号和逗号。 ' 关闭记录集和文件。 为什么在 Access 中使用 ADO? DAO 更合适。【参考方案3】:

在查询中处理此问题的一种简单方法是将值双重转换为长整数,然后再转换为字符串。 对于 CSV 导出,无论如何它都是字符。

myValue:ZString(ZLong(123456789))

【讨论】:

以上是关于在 Access 2007 CSV 导出中:禁用科学记数法的主要内容,如果未能解决你的问题,请参考以下文章

从 Access 2007 导出 XML(base64 附件)

Access 2007 链接表管理器为一个用户禁用 - 和错误 8458

使用 vba 将 xls/csv 文件插入到 access 2007 表中

以编程方式执行 Access 2007 报告并将该报告导出为 PDF?

如何将数据库从 MS access 2007 导出到 MySQL? [关闭]

Access 2003 报表的计算字段在导出到 xls 文件时不显示,但显示在 csv 中