2013-02-19 175 views
0

我想通过SQL Server R2实例访问我的MS Access数据库。链接ms访问sql服务器

可能吗?如果是,比如何?

+0

它是一个很好的想法,但我没有得到任何的想法是如何工作的。也不知道为什么每个人都会降低这个问题...现在上帝帮助解决你的问题。 – 2013-02-19 16:29:21

+1

将其添加为链接服务器?另外,这与编程有什么关系? – Bridge 2013-02-19 16:42:13

+0

请解释“链接”是什么意思,你的目标是什么。你的问题很短,你问的问题并不完全清楚。 – Pondlife 2013-02-19 16:42:29

回答

1

简短的回答:

OPENDATASOURCE

http://msdn.microsoft.com/en-us/library/ms179856.aspx

我有几个例子here

我的例子不是 “直接命中”,但是是有帮助的,恕我直言。从MSDN文章

实施例:

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ; 

这里是一个更长的版本。 但是,您需要列出您的Sql Server版本(32或x64),您的O/S。 x64 Sql Server将有一些打嗝与Jet数据库交谈。

/* Setup */ 

/* 
--Run this ONCE 

sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1; 
GO 
RECONFIGURE; 
GO 

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 
GO 

RECONFIGURE; 
GO 

*/ 




CREATE VIEW [dbo].[vwJetDatabaseWrapper] 

AS 

/* 
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
'Data Source=C:\work2\DotNet\MultiRDBMSSupport\DataStores\AccessDatabaseCopy\Nwind.mdb;')...[Customers] ; 
*/ 

/* OR */ 


SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
'Data Source=C:\work2\DotNet\MultiRDBMSSupport\DataStores\AccessDatabaseCopy\Nwind.mdb;')...[Customers] ; 




GO