excel - VBA 连接到文件服务器上的另一个工作簿
问题描述
我想将数据从一个工作簿导入另一个工作簿,并且在 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)“无法启动程序。工作组的信息文件丢失或被其他用户独占打开。”
解决方案
经过长时间的尝试不同的事情,答案其实超级简单,也很尴尬。
在我的文件路径中,我认为它是 \FILEREP\,而实际上它是 \FILERP\
所以我给所有人的教训是,在开始查看其他内容之前,请确保您拥有正确的文件路径!:)
最后,我需要的只是下面看到的标准连接字符串!
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & filepath & ";" & _
"Extended Properties=""Excel 12.0 Xml;HDR=No;"""
推荐阅读
- node.js - 为什么 Clarifai 无法使用 Clarifai 门户中生成的 API 密钥或个人访问令牌验证模型输出请求?
- arrays - 无法使用 strtok() 访问地址处的内存
- python - cvlib 对象检测空列表
- mysql - 如何自然排序“XY”字符串数据,首先按X,然后按Y?
- javascript - 如何使用 Jest 模拟 optimizelySDK.createInstance().onReady()?
- python - Python 包命名空间:common test/docs/setup.py 或每个命名空间一个 - 哪种模式更好?
- mysql - 增加 5% 和 10% 的上市
- r - 错误:使用 tidyREDCap 中的“make_choose_all_table”时,结果 1 必须是单个字符串,而不是长度为 0 的字符向量
- python - Pandas DataFrame 切片与副本:哪一个对内存更友好?
- filter-driver - 键盘过滤器驱动程序。扫码 -> VK_??? (OEM 特定)