sql 导入局域网access数据报错

z315559822 2015-10-22 09:22:44
计划用sql 定时从局域网的【\\ssm11\工作文件$\用料明细统计】下面读取xlsx格式文件进行使用。
一直报错,百度后大家反馈excel不稳定,于是利用ACCESS的链接表和EXCEL进行链接后,该从sql读取局域网ACCESS的数据,但是仍然报错,请大家帮助解决。


几个要点说明:
1.原始文件EXCEL的路径是:\\ssm11\工作文件$\用料明细统计\模具用料明细统计汇总表.xlsx 里面的 汇总表
2.和EXCEL建立链接表的ACCESS的路径是:\\ssm11\工作文件$\用料明细统计\用料明细统计导入数据库.accdb 里面的 用料明细_模具
3.把ACCESS放到本地 E:\用料明细统计导入数据库.accdb 报错方式相同。
4.\\ssm11的登录账号:admin 密码:8520
5.xlsx 和 accdb 的账号都是 admin 无密码

报错如下:

----------------------------------------------------------------------------------------------------
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'\\ssm11\工作文件$\用料明细统计\用料明细统计导入数据库.accdb';'admin';'',用料明细_模具)

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "Microsoft Access 数据库引擎无法打开文件“\\ssm11\工作文件$\用料明细统计\用料明细统计导入数据库.accdb”或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的权限。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 的数据源对象。

----------------------------------------------------------------------------------------------------
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Data Source=\\ssm11\工作文件$\用料明细统计\用料明细统计导入数据库.accdb';'User ID=admin';'Password=8520',用料明细_模具)

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "不是有效的账户名称或密码。"。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 的数据源对象。

----------------------------------------------------------------------------------------------------
SELECT * FROM OpenDataSource(
'Microsoft.Jet.OLEDB.4.0',
'Data Source=\\ssm11\工作文件$\用料明细统计\模具用料明细统计汇总表.xlsx;User ID=Admin;Password=;Extended properties=Excel 5.0'
)...[汇总表$]

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "Microsoft Jet 数据库引擎打不开文件'\\ssm11\工作文件$\用料明细统计\模具用料明细统计汇总表.xlsx'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。


...全文
154 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
spiritofdragon 2015-10-22
  • 打赏
  • 举报
回复
比如打开exec xp_cmdshell开关。 先执行Net 命令。就能访问你的局域网服务器了。 然后再用OPENROWSET,就没有权限问题了。
spiritofdragon 2015-10-22
  • 打赏
  • 举报
回复
\\ssm11服务器的登录权限要在,这在此之前用程序去登录,OPENROWSET函数的第3、4个参数只是文件的用户名和密码,不是os的用户名和密码。
z315559822 2015-10-22
  • 打赏
  • 举报
回复
引用 1 楼 spiritofdragon 的回复:
第一有可能是没开开关: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 第二有可能是路径不对。 第三可能是文件被打开。 但,后2个感觉你已经排除了。
开关问题处理过了,现在就是困惑在 4.\\ssm11的登录账号:admin 密码:8520 ssm11的密码账号是否需要作为连接条件写入语句,但是好像没有对应的参数位置。
spiritofdragon 2015-10-22
  • 打赏
  • 举报
回复
第一有可能是没开开关: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 第二有可能是路径不对。 第三可能是文件被打开。 但,后2个感觉你已经排除了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧