我创建了一个多用户访问表单,该表单基本上在一天中的大部分时间都在多人计算机上打开。在此表单上,我创建了一个按钮,该按钮将通过VBA导入Excel电子表格。代码是:
Option Compare Database
Private Sub Command0_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE ExcelTable.* FROM ExcelTable;"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "ExcelTable", "C:\Users\JohnDoe\Documents\MyTable.xlsx", True, "Data!A6:DB" & numberofrows
DoCmd.SetWarnings True
End Sub
此代码可以很好地导入数据。但是,用户经常需要全天更新电子表格。我经常遇到两个问题:
如果用户尝试使用更新的版本覆盖原始电子表格,则会收到错误消息“无法访问只读文档”。
如果用户尝试打开电子表格,则会收到错误消息,指出excel文件已被锁定以进行编辑。
给我的印象是,通过运行上面的VBA代码,用户正在导入静态表(而不是链接表),这意味着一旦将该表导入Access,它就不再引用原始Excel文件。
如何解决这些错误消息?
用户将需要在一整天内多次更新excel文件,现在,每个人都必须完全退出Access才能访问原始excel文件。