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

时间:2018-10-17 08:42:41

标签: excel vba oledb fileserver

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

每次我尝试从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)'“无法更新。数据库或对象受到写保护。”

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

运行时错误'-2147217887(80040e21)'“多步OLE DB操作生成了错误。请检查每个OLE DB状态值”

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

运行时错误'-2147217843(80040e4d)“无法启动程序。工作组的信息文件丢失或由另一个用户独占打开。”

1 个答案:

答案 0 :(得分:0)

经过长时间尝试不同的尝试,答案实际上非常简单,令人尴尬。

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

因此,我的全部教训是,在开始查看其他内容之前,请确保您具有正确的文件路径! :)

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

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