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" 的数据源对象。


...全文
128 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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个感觉你已经排除了。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-10-22 09:22
社区公告
暂无公告