停止Ms Excel自动将数字字符串格式化为数字

3
我正在将MS Access(2003)中的报告导出为Excel(97-2003)输出文件。
其中一列具有数字字符字符串,例如“05-0880”。
当我在MS Excel中打开输出文件时,相应的单元格设置为数字-372424
我认为这是由于Excel很“聪明”,并决定“05-0808”表示某种时间值或日期,并将字符串转换为相应的数字值所致。
在我的情况下,数据表示产品代码,这种转换非常不可取。 如果我导出报告的基础查询的输出(导出数据表),则不会发生此转换。(这表明Access必须能够以防止转换的方式输出到Excel格式)。
我尝试更改报告中字段的格式属性,但没有“文本”选项,“标准”似乎与留空相同。
是否有办法使用format()函数强制进行字符串输出? 如果可以,即使Excel仍然进行其聪明的转换,这是否有帮助?
仅将基础查询用作输出是一种选择,但并不理想,因为格式和分组会丢失。将报告导出为文本格式是一场灾难,因为列未被分隔。
3个回答

2
实际上,情况更像是相反的。MS Access太笨了,无法从报表中正确导出数据。你可以用引号或撇号来保护数据;但是,如你所知,这样做很丑陋,需要后期处理。
我的解决方法是仔细制作查询,然后导出查询结果而不是报告。这将给你期望的结果。

从报表导出到Excel除了极少数特殊情况几乎没有意义(在12年的专业Access编程中,我可能只做过两次)。 - David-W-Fenton

1

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


同意。在字符串开头添加一个撇号(')。 - Leonardo Herrera
你如何导出Excel文件? - TcKs
我尝试通过更改报表中文本字段的控件源为="'" & [myfield]在代码/数字前放置一个撇号,但这导致在Excel中输出'05-0880,这并不理想,因为我想避免对输出文件进行后处理。 - Loopo
@TcKs 我使用 DoCmd.OutputTo acOutputReport, <reportName>。 - Loopo
在Excel中,开头的那个撇号是其中一个“常用技巧”。工具应该在它之前进行处理。下一种方法是在导出后,以编程方式打开文件,并明确设置列的格式。 - TcKs

0

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


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