【问题标题】:Import Data from Excel to Access from a Specific Tab从特定选项卡将数据从 Excel 导入 Access
【发布时间】:2018-04-10 03:41:10
【问题描述】:

我正在尝试运行从 Excel 工作簿中的特定选项卡导入数据的 Access 函数。到目前为止,我只找到了一种从工作簿中获取它的方法,但我不确定在哪里指定选项卡。

代码如下,其中tbl为字符串中的Access表,url为Excel工作簿路径。

DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE * FROM " & tbl & ";")
DoCmd.TransferSpreadsheet acImport, 10, tbl, url, True, ""
DoCmd.SetWarnings True

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    只需使用 DoCmd.TransferSpreadsheetRange 参数,您将其留空并添加一个感叹号来指定整个使用的工作表范围:

    DoCmd.TransferSpreadsheet acImport, 10, tbl, url, True, "mySheetName!"
    
    ' WITH VARIABLE
    sht = "mySheetName"
    DoCmd.TransferSpreadsheet acImport, 10, tbl, url, True, sht & "!" 
    

    或者,使用以下格式的 SQL 查询,其中使用 $ 而不是 ! 用于工作表:

    INSERT INTO [Table]
    SELECT *
    FROM [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Workbook.xlsx].[SHEET1$];
    

    然后在 Access VBA 中使用CurrentDb.Execute 调用它,从而避免重置警告:

    CurrentDb.Execute "DELETE FROM " & tbl & ";", dbFailOnError
    CurrentDb.Execute "INSERT INTO [" & tbl & "] " & _
                      "SELECT * " & _
                      "FROM [Excel 12.0 Xml;HDR=Yes;Database=" & url & "].[" & sht & "$];", dbFailOnError
    

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 2014-11-19
      • 2017-05-23
      • 1970-01-01
      • 2013-05-16
      • 2019-11-28
      • 1970-01-01
      • 2014-07-08
      相关资源
      最近更新 更多