在vb6中运行sql存储过程错误opendatasource

时间:2013-03-18 12:19:27

标签: sql-server ms-access vb6

我尝试使用下面的代码使用VB6 ADO连接将访问表中的所有记录插入到sql server表中

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")

但是当我运行代码时会发生以下错误:

  

运行时错误' -2147217900(80040e14)':   [OLE / DB提供程序返回消息:Microsoft Jet数据库引擎无法打开文件' D:\ Kargozini \ arazz \ Arazdb.Mdb'。它已由其他用户专门打开,或者您需要获得查看其数据的权限。]

1 个答案:

答案 0 :(得分: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/