【问题标题】:stop Ms Excel auto-formatting numeric strings as numbers停止 Ms Excel 将数字字符串自动格式化为数字
【发布时间】:2010-09-21 23:54:37
【问题描述】:

我正在将报告从 MS Access(2003) 导出到 Excel (97-2003) 输出。

其中一列的字符串对于某些行是数字的,例如“05-0880”。

当我在 MS Excel 中打开输出文件时,相应的单元格设置为数字 -372424

我认为这是由于 Excel 很“聪明”并决定“05-0808”代表某种时间值或日期并将字符串转换为相应的数值造成的。

在我的例子中,数据代表产品代码,这种转换是非常不可取的。 如果我导出报表基础查询的输出(导出数据表),则不会发生这种转换。 (建议Access必须能够以防止转换的方式输出到Excel格式)。

我尝试更改报告中字段的格式属性,但没有“文本”选项,并且“标准”的行为似乎与将其留空相同。

有没有办法使用 format() 函数来强制字符串输出? 如果是这样,当 Excel 仍然可以进行巧妙的转换时,这是否会有所帮助?

仅使用底层查询作为输出是一种选择,但并不理想,因为格式和分组会丢失。将报告导出为文本格式是一场灾难,因为列没有分隔。

【问题讨论】:

    标签: excel ms-access formatting report export-to-excel


    【解决方案1】:

    实际上,它更像是相反的方式。 MS Access 太笨了,无法从报告中正确导出。您可以使用引号或撇号来保护数据;但是,如您所知,这非常难看,需要后期处理。

    我的解决方法是仔细制作查询,然后导出查询结果而不是报告。这将为您提供您期望的结果。

    【讨论】:

    • 从报表导出到 Excel 没有什么意义,除了极少数特殊情况(在 12 年以上的专业 Access 编程中,我可能做过两次)。
    【解决方案2】:

    导出“'05-0880”而不是“05-0880”。

    【讨论】:

    • 第二个。在字符串的开头添加撇号 (')。
    • 如何导出excel文件?
    • 我尝试通过将报告中文本字段的控制源更改为 ="'" & [myfield] 来在代码/数字前面放置一个撇号,但这导致输出 '05-0880在 Excel 中,这并不理想,因为我想避免对输出文件进行后处理
    • @TcKs 我使用 DoCmd.OutputTo acOutputReport,
    • 开头的撇号是excel中的“常用技巧”。工具“应该”继续它。下一种方法是导出后以编程方式使用 excel 打开文件并显式设置列的格式。
    【解决方案3】:

    确保您使用单引号而不是其他撇号。

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      相关资源
      最近更新 更多