2013-02-19 172 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