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

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

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

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

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

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

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

【问题讨论】:

    标签: ms-access csv export scientific-notation


    【解决方案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))
    

    【讨论】:

      猜你喜欢
      • 2014-08-10
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多