日期:2014-05-18  浏览次数:20429 次

请大牛出手,sqlserver连接服务器access
在google搜索“sqlserver连接access”
随处可以看到那篇文章讲述如何使用odbc提供程序和“连接服务器”来连接access
但是
“即可在右边窗口看到该ACCESS数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为:   [连接服务器名]..[ACCESS用户].[表名]。更详细具体的使用这里不再赘述。”

access里的表是看到了
但是在查询分析器里使用
select   *   from   test..administrator.t_client
报错:
服务器:   消息   7312,级别   16,状态   1,行   1
对   OLE   DB   提供程序   'MSDASQL '   的架构和/或目录的使用无效。提供了由四部分构成的名称,但提供程序并未表现必要的接口来使用目录和/或架构。
OLE   DB   错误跟踪[Non-interface   error]。

请指点,想知道答案的请顶贴


------解决方案--------------------
C. 使用用于 Jet 的 Microsoft OLE DB 提供程序
下面的示例通过用于 Jet 的 Microsoft OLE DB 提供程序访问 Microsoft Access Northwind 数据库中的 orders 表。


说明 下面的示例假定已经安装了 Access。


USE pubs
GO
SELECT a.*
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ',
'c:\MSOffice\Access\Samples\northwind.mdb '; 'admin '; 'mypwd ', Orders)
AS a
GO


------解决方案--------------------
要是access,与sqlserver放在同一机子的话可以用:
SELECT a.*
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ',
'c:\MSOffice\Access\Samples\northwind.mdb '; 'admin '; 'admin ', Orders)
AS a
GO

------解决方案--------------------
*************
SQL查询ACCESS
*************

--此示例创建一台名为 SEATTLE Mktg 的链接服务器
--本示例假设已经安装 Microsoft Access 和示例 Test 数据库
--Northwind 数据库位于C:\目录下
EXEC sp_addlinkedserver
@server = 'srv_access ',
@provider = 'Microsoft.Jet.OLEDB.4.0 ',
@srvproduct = 'OLE DB Provider for Jet ',
@datasrc = 'C:\Test.mdb '
GO
-- OR to use no named parameters:

EXEC sp_addlinkedserver
'srv_access ',
'OLE DB Provider for Jet ',
'Microsoft.Jet.OLEDB.4.0 ',
'C:\Test.mdb '
GO

--返回在本地服务器上定义的链接服务列表
exec sp_linkedservers
go

--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_access ', 'droplogins '
go

--执行查询
SELECT *
FROM srv_access...表名