将excel工作表数据从excel vba传输到访问表给出错误

Posted

技术标签:

【中文标题】将excel工作表数据从excel vba传输到访问表给出错误【英文标题】:Tranfer excel sheet data to access table from excel vba giving error 【发布时间】:2014-04-04 17:56:32 【问题描述】:

我正在尝试将 Excel 工作表数据传输到访问表。下面的代码抛出一个错误 variable not defind 并指向 acImport 。 TransferSpreadsheet 方法适用于 excel 吗?任何替代方法都可以传输工作表数据以仅从 excel 访问。

   Private Sub Cal_WEM_Click()
   Dim appAccess As Object
   Dim aPath, aDbase, aDSource, aTable, exePath As String
   Dim fileParam As String
   aPath = ActiveWorkbook.Path
   aDbase = "Linear.accdb"
   aDSource = aPath & "\" & aDbase

  Set appAccess = CreateObject("Access.Application")
  appAccess.Visible = True

  appAccess.OpenCurrentDatabase aDSource

 appAccess.DoCmd.TransferSpreadsheet transfertype:=acImport, _
        tablename:="yorno", _
        FileName:=aPath, Hasfieldnames:=True, _
        Range:="WEM!D:E", SpreadsheetType:=5
        appAccess.DoCmd.OpenForm "Input_Form_WEM"

 Application.DisplayAlerts = False
 ThisWorkbook.Saved = True
 Application.Quit
 Exit Sub
 End Sub

【问题讨论】:

此代码中的 acImport 在哪里? 不是预定义的吗。如何在 excel 中指定相同的 Tranferspreadsheet 命令,因为它可以通过使用相同的 Docmd 进行访问 【参考方案1】:

通过像这样声明变量来解决

 Const acImport = 0
 Const acSpreadsheetTypeExcel9 = 8

 appAccess.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"wemonoff1", ename, True, "WEM-ONOFF!D:E"

【讨论】:

以上是关于将excel工作表数据从excel vba传输到访问表给出错误的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA - 在工作表之间传输数据

将 Excel 工作表移至 Microsoft 访问的 Excel-VBA 代码?

使用公式将数组从 VBA 函数输出到 Excel 工作表

如何将行从一个 Excel 工作表复制到另一个工作表并使用 VBA 创建重复项?

Excel VBA将单元格数据保存到单独的工作表

Excel 工作表名称不允许使用 VBA 将数据导入 Access - DAO