Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 通过VBA将Excel文件导入Access时出现问题_Ms Access_Vba - Fatal编程技术网

Ms access 通过VBA将Excel文件导入Access时出现问题

Ms access 通过VBA将Excel文件导入Access时出现问题,ms-access,vba,Ms Access,Vba,我已经创建了一个多用户访问表单,它将在多台计算机上开放一天的大部分时间。在这个表单上,我创建了一个按钮,可以通过VBA导入excel电子表格。代码是: Option Compare Database Private Sub Command0_Click() DoCmd.SetWarnings False DoCmd.RunSQL "DELETE ExcelTable.* FROM ExcelTable;" DoCmd.TransferSpreadsheet acImport, acSprea

我已经创建了一个多用户访问表单,它将在多台计算机上开放一天的大部分时间。在这个表单上,我创建了一个按钮,可以通过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文件。

    问题一定是由其他原因引起的。我可以在导入后打开甚至更新Excel文件,然后再次运行导入,并读取更新的数据。另外,在Excel中打开文件并运行导入。如果用户试图打开电子表格,他们会收到错误消息,表示Excel文件已锁定以进行编辑。这是因为Access运行Excel的一个实例。事实上,多个用户可能正在覆盖和/或打开电子表格,您没有考虑到他们可能会同时尝试这样做吗?您尚未共享任何关于如何避免与共享文件发生此类冲突的信息,因此默认假设是可能是其他用户锁定了该文件,而不必进行访问。值得一提的是,我在访问和锁定驻留在基本Linux NAS(网络连接存储)上的数据库和非数据库文件时遇到了问题装置。这是一个第三方系统,我不是linux专家,所以我从未解决过这个问题,尽管它处于“Windows共享模式”。一旦我将文件移动到Windows服务器(甚至是Windows 10 Home计算机),锁定问题就不存在了。C Perkins-多个用户不太可能同时尝试导入文件。虽然多个用户在数据库中工作,但只有5-6个人,而且他们都在一起工作,因此对于谁导入文件存在一定程度的沟通。此外,所有文件都存储在Windows 7或Windows 10上。此问题一定是由其他原因引起的。我可以在导入后打开甚至更新Excel文件,然后再次运行导入,并读取更新的数据。另外,在Excel中打开文件并运行导入。如果用户试图打开电子表格,他们会收到错误消息,表示Excel文件已锁定以进行编辑。这是因为Access运行Excel的一个实例。事实上,多个用户可能正在覆盖和/或打开电子表格,您没有考虑到他们可能会同时尝试这样做吗?您尚未共享任何关于如何避免与共享文件发生此类冲突的信息,因此默认假设是可能是其他用户锁定了该文件,而不必进行访问。值得一提的是,我在访问和锁定驻留在基本Linux NAS(网络连接存储)上的数据库和非数据库文件时遇到了问题装置。这是一个第三方系统,我不是linux专家,所以我从未解决过这个问题,尽管它处于“Windows共享模式”。一旦我将文件移动到Windows服务器(甚至是Windows 10 Home计算机),锁定问题就不存在了。C Perkins-多个用户不太可能同时尝试导入文件。虽然多个用户在数据库中工作,但只有5-6个人,而且他们都在一起工作,因此对于谁导入文件存在一定程度的沟通。此外,所有文件都存储在Windows 7或Windows 10上。