从Excel导入数据到特定选项卡的访问

时间:2018-04-09 19:04:57

标签: vba ms-access

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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$];

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

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