2013-03-18 51 views
0

我試圖用波紋管代碼使用VB6 ADO連接運行SQL存儲VB6誤差範圍內的程序OPENDATASOURCE

Set cn = New ADODB.connection 
cn.CursorLocation = adUseClient 
cn.ConnectionString = "Provider=SQLOLEDB.1;Password=password;Persist Security 
Info=True;User ID=sa;Initial Catalog=Kargozini;Data Source=DC" 
cn.Open 
cn.execute("INSERT INTO TLeavePersonel SELECT * FROM OPENDATASOURCE 
('Microsoft.Jet.OLEDB.4.0','Data Source=D:\Kargozini\arazz\Arazdb.Mdb; 
Jet OLEDB:Database Password=MYPASSWORD;')... TLeavePersonel Rowset_1") 

從訪問表中的所有記錄插入到SQL Server表但是當我運行的代碼如下出現錯誤:

運行時錯誤 '-2147217900(80040E14)': [/ OLE DB提供程序返回消息:Microsoft Jet數據庫引擎無法打開文件「d:\ Kargozini \ arazz \ Arazdb.Mdb 」。它已經被anothe用戶以獨佔方式打開,或者您需要權限來查看其數據]

+0

檢查這篇文章http://support.microsoft.com/kb/306269 – praveen 2013-03-18 12:31:27

+0

的路徑是'd:\ Kargozini \ arazz \ Arazdb。 Mdb'可供SQL服務器訪問?即使您可能正在一臺服務器上運行代碼,因爲您正在對SQL服務器執行它,它將自行尋找「D」驅動器。您可能不得不使用UNC共享來訪問它。 – RichardC 2013-03-18 16:10:29

回答

0

看樣子你是從MS Access工作,所以你可以參考在查詢中線上的SQL Server連接。

INSERT INTO 
[ODBC;DRIVER=SQL Server;SERVER=server;Trusted_Connection=Yes;DATABASE=Kargozini;].TLeavePersonel 
SELECT * FROM TLeavePersonel; 

你會找到一個合適的ODBC連接字符串在這裏:http://www.connectionstrings.com/