【问题标题】:exporting access tables to excel将访问表导出到 Excel
【发布时间】:2010-09-27 08:04:03
【问题描述】:

我正在尝试使用以下代码将表从访问导出到 excel

我得到错误对象最后不支持属性或方法

 Set objexcel = New Excel.Application
   objexcel.Visible = True

   If Dir("C:\reports\Data_Analysis1.xls") = "" Then
   objexcel.Workbooks.Add
   Set wbexcel = objexcel.ActiveWorkbook
   Set objSht = wbexcel.Worksheets("Sheet1")
   Else
   Set wbexcel = objexcel.Workbooks.Open("C:\Documents and Settings\TAYYAPP\Desktop\test folder\reports\ERROR REPORT4.xls")
   Set objSht = wbexcel.Worksheets("Sheet1")
   End If

   objSht.Activate


   objexcel.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "UTYP_Anzahl", "C:\Reports\Data_Analysis1.xls", True

【问题讨论】:

    标签: ms-access vba export


    【解决方案1】:

    “DoCmd.TransferSpreadsheet”中的 DoCmd 是 MS Access 命令,而不是 excel 命令。我认为这是你的问题。

    如果此 VBA 在 MS Access 中运行,则只需将其称为

    DoCmd.TransferSpreadsheet
    

    没有

    objexcel.DoCmd.TransferSpreadsheet
    

    此外,如果您正在这样做,则无需使用 Execl Automation 手动创建 excel 文件,Access 会为您完成。

    抱歉,如果我误解了您在做什么,但我认为您需要的只是 TransferSpreadSheet 命令。

    【讨论】:

    • thankx 删除了错误,但现在我收到错误 3011,即 jet 数据库找不到表名。我检查并看到桌子在那里
    • 那么如何将此答案标记为正确,因为它回答了已发布的问题?另外,您能否提供更多详细信息。哪个版本的 MS Access?您是在访问中运行 VB 脚本,还是在外部运行并使用自动化?谢谢
    • 好吧,我正在使用 access 2002,我正在访问中运行 vb
    • 我唯一能想到的就是您在没有打开该数据库的情况下运行。老实说,我从未见过这个错误。尝试发布另一个问题,专门针对该问题。还要将问题隔离到尽可能小的函数中,并发布该函数的源代码。
    • 您是否尝试过导出到其他文件名,即不存在的文件名,例如“C:\Reports\Test.xls”?
    【解决方案2】:

    这个answer 与 Excel 对象一起使用并且很有帮助,因为它允许您自动格式化 Excel 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多