【问题标题】:Could not find installable ISAM when importing Access table to Excel将 Access 表导入 Excel 时找不到可安装的 ISAM
【发布时间】:2011-12-22 03:12:06
【问题描述】:

我有一个将 Access 表导入 MS Office Excel 的模块。 这个模块已经实现了将近 6 个月并且运行良好,但是昨天模块突然开始给出错误消息“External table is not in expected format”

我通过这个网站搜索了答案,发现对于 Excel 2007,我必须使用语法“Excel 12.0”而不是“Excel 8.0”。我更改了脚本并收到一条新的错误消息: “找不到可安装的 ISAM” (代码如下)

其他信息: 我尝试打开创建的 excel 文件并收到警告消息:
“您尝试打开的文件 'bppdan.xls' 的格式与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的来源。你会现在要打开文件吗?”

所以...我决定修改代码(如下所示),但没有收到错误消息“外部表不是预期格式”或“找不到可安装的 ISAM” 我真的很想知道是什么原因导致这两个错误消息

我真的需要你的帮助

(In VB 6 Application) In menu: Project -> References, I checked the option "Microsoft Excel 12.0 Object Library"

此代码生成“外部表不是预期格式”


    Dim dbDest As Database

    FName = ExcelApp.GetSaveAsFilename(, "Excel (*.xls),*.xls", , "Save to Excel")
    If FName = False Then Exit Sub
    Set dbDest = OpenDatabase(FName, False, False, "Excel 8.0;HDR=NO;")

此代码生成“找不到可安装的 ISAM”


    Dim dbDest As Database

    FName = ExcelApp.GetSaveAsFilename(, "Excel (*.xls),*.xls", , "Save to Excel")
    If FName = False Then Exit Sub
    Set dbDest = OpenDatabase(FName, False, False, "Excel 12.0;HDR=NO;")

我已经修改了代码:


    Dim dbDest As Database

    FName = ExcelApp.GetSaveAsFilename(, "Excel (*.xls),*.xls", , "Save to Excel")
    If FName = False Then Exit Sub
    Set dbDest = OpenDatabase("C:\Users\administrator\Desktop\my.xls", False, False, "Excel 8.0;HDR=NO;")

【问题讨论】:

  • 你应该发布连接字符串和一些代码。
  • 亲爱的 Remou...感谢您的建议,我已经发布了代码和连接.. 希望您能帮助我
  • 恐怕这还不够。您正在 Access 中运行此代码,是吗?那么您是从 Access 导出到 Excel 吗?您正在打开现有的 Excel 文件吗?如果您从 Access 运行,是否有任何理由不使用 TransferSpreadsheet?为什么要打开 (?) Excel 作为数据库?
  • 亲爱的 Remou... 不,我在 Visual Basic 中运行代码。我没有打开现有的 Excel 文件,我询问用户系统将创建的文件名。
  • 哪个 Visual Basic?你在标签里说VBA,VBA是和一个应用关联的,你用的是哪个应用?

标签: excel ms-access vb6


【解决方案1】:

最后,我们的高级开发人员找到了解决方案(yippie!) 她就是这样做的:

  1. 她修改了准备工作表的代码,她添加了文件格式
    所以代码从

Set ExcelWkb = ExcelApp.Workbooks.Add
ExcelWkb.SaveAs FName

变成

Set ExcelWkb = ExcelApp.Workbooks.Add
ExcelWkb.SaveAs FName, xlExcel5


  1. 她修改了连接代码 所以代码从

Set dbDest = OpenDatabase(FName, False, False, "Excel 8.0;HDR=NO;")

变成

Set dbDest = OpenDatabase(FName, False, False, "Excel 5.0;")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多