2013-03-18 50 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/