VBA 连接到文件服务器上的另一个工作簿

VBA connection to another workbook on a fileserver

我想将数据从一个工作簿导入到另一个工作簿,并且在 OLEDB 驱动程序的帮助下完成了此操作。但是它只适用于我的本地机器。当我尝试在实际生产环境中测试它时,它无法连接到源文件。 运行 文件和源文件都存在于具有身份验证要求的文件服务器上,但我有 read/write 访问权限,但我无法打开源文件。

每次我尝试从 excel 工作簿中获取数据时,我都会收到一条错误消息,提示我尝试连接的文件已经打开,无法访问。我确定没有人在使用源文件。我试过使用不同的方式来编写文件路径,每个变体都会给我不同的错误。 ("\FILERP\..." 以及一个盘符 "G:...")

您可以在下面找到我尝试过但没有成功的字符串连接之一。

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "User ID=" & userName & ";" & _
                "IMEX=1;" & _
                "Mode=Read;" & _
                "Extended Properties=""Excel 12.0 Xml;" & _
                "HDR=NO;"""

我遇到的一些错误示例:

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

运行时错误“-2147467259 (80004005)”"Can't update. The database or object is write protected."

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Integrated Security=SSPI;" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

运行时错误“-2147217887 (80040e21)”"Multiple-step OLE DB operation generated errors. Check each OLE DB status value"

    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "User Id=" & userName & ";" & _
                "Password=****;" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""

运行时错误'-2147217843 (80040e4d)"Can't start the program. The information file for workgroups is missing or is exclusively opened by another user."

经过长时间尝试不同的事情,答案其实超级简单,也很尴尬。

在我的文件路径中,我认为它是 \FILEREP\,但实际上是 \FILERP\

所以我给所有人的教训是,在开始查看其他内容之前,请确保您拥有正确的文件路径! :)

最后我需要的只是下面看到的标准连接字符串!

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                "Data Source=" & filepath & ";" & _
                "Extended Properties=""Excel 12.0 Xml;HDR=No;"""