Office中国论坛/Access中国论坛

标题: 导出到excel,格式总是95的 [打印本页]

作者: tz-chf    时间: 2008-6-1 22:10
标题: 导出到excel,格式总是95的
导出到excel,但格式总是5.0/95的格式,如何能得到2000或2003的格式?

是宏的代码,选中的是97-2003的格式,但还是不行。
DoCmd.OutputTo acQuery, "上报查询", "MicrosoftExcelBiff8(*.xls)", "", True, "", 0

根据帮助改的,也不行。
DoCmd.OutputTo acOutputQuery, "上报查询", acFormatXLS, "", True, "", 0
作者: wjb5645    时间: 2008-6-1 22:41
一定要用OutputTo不能用TransferSpreadsheet 吗?
作者: tz-chf    时间: 2008-6-1 23:14
原帖由 wjb5645 于 2008-6-1 22:41 发表
一定要用OutputTo不能用TransferSpreadsheet 吗?


这个太不灵活,也可以说是太灵活,excel文件名、范围都要自己判断(是否重名等等),而且没有提示操作。好象只能导出表,那就肯定不行了,我需要的是经过处理的查询。

outputto就合适,但导出的excel格式不太行,弄不到2003的格式。
作者: tz-chf    时间: 2008-6-1 23:24
现在的问题是直接运行宏,没有问题。执行宏转换过来的代码,生成的excel文件就是95格式的了。

那么正确的代码是。。。。?
作者: t小宝    时间: 2008-6-1 23:29
生成的excel文件什么知道它是95格式的呢?
作者: tz-chf    时间: 2008-6-1 23:39
提示保存文件时的文件格式里是95的。而且打开的文件只要稍一改动(如:格式——列——最适合的列宽),保存时就会有提示。

[ 本帖最后由 tz-chf 于 2008-6-1 23:57 编辑 ]
作者: tz-chf    时间: 2008-6-1 23:59
毛病是宏转换过来的代码有错误,是个bug。

我把代码修正一下,已经解决!!!
作者: t小宝    时间: 2008-6-2 00:03
确实有这种现象,不知为何?
作者: t小宝    时间: 2008-6-2 00:20
原帖由 tz-chf 于 2008-6-1 23:59 发表
毛病是宏转换过来的代码有错误,是个bug。

我把代码修正一下,已经解决!!!

不分享一下?
作者: tz-chf    时间: 2008-6-4 15:44
DoCmd.OutputTo acQuery, "上报查询", 8, "", True, "", 0
作者: t小宝    时间: 2008-6-4 16:36
竟有这个奥妙,感谢楼主分享
作者: andymark    时间: 2008-6-4 17:44
TransferSpreadshee一样可以导出查询 ,我一直用它来导出的
作者: tz-chf    时间: 2008-6-4 18:13
原帖由 andymark 于 2008-6-4 17:44 发表
TransferSpreadshee一样可以导出查询 ,我一直用它来导出的


请贴这一句的代码看看

因为宏里的选项是“表”,我没用查询试过。
作者: andymark    时间: 2008-6-4 20:10
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, StrTableName, StrExcelName, True
作者: tz-chf    时间: 2008-6-4 20:30
原帖由 andymark 于 2008-6-4 20:10 发表
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, StrTableName, StrExcelName, True


每次的输出会覆盖掉上次的,要处理比较麻烦。不如outputto,由用户自己去处理。
作者: chenlugen    时间: 2008-8-3 00:30
能不能实现导出的文件名自动生成格式,而且每次都生成类似的文件名,如aaa001,aaa002....还有能不实现每次导出的数据是接着上次的.....(不包含上次的)??????




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3