用SqlServer企业管理器的DTS中的导入一个Access带密码的数据库为何总是提示有问题?(散分了)

时间:2022-10-20 21:43:38
用SqlServer企业管理器的DTS中的导入一个带密码的Access的数据库(输入正确的密码)为总是提示:

“错误源:MicroSoft Jet Datebase Engine”
“错误描述:无法启动应用程序。工作组信息文件丢失,获是一被其他用户以独占方式打开。”
“上下文:初始化提供程序时出错。”

而如果用SqlServer企业管理器的DTS中的导入一个不带密码的Access文件则一切正常
而这个Access库的密码我又不能够改因为别的应用程序也在用。请高手指教、定散分。

10 个解决方案

#1


建议反方向来,直接在Access中建立链接表,然后用select into即可

#2


呵呵,我也想问问
如何在Access中做一个SQL Server的表链接呢?

#3


哦,我试成功了
建DSN-表链接

#4


--在SQL中,用查询语句读取有密码的ACCESS数据库的数据

SELECT * 
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\你的数据库.mdb";Jet OLEDB:Database Password=密码')...表名

#5



在ACCESS中,上传数据库到SQL(表已经存在的情况):

insert into [ODBC;Driver=SQL Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名
SELECT * FROM 表名

--如果是上传数据库到SQL(表不存在的情况):
SELECT * into [ODBC;Driver=SQL Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名
FROM 表名

#6


zjcxc(邹建)的回答太好了,长见识
另外想请教一下,以上语句的数据库引擎连接字符串部分的
书写标准可以参考什么资料?

#7


UP

#8


.  
SQL SERVER 与ACCESS、EXCEL的数据转换
作者:ec  更新日期:2003-8-26  浏览人次:173 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=78FAB21E13DC

 
转载自csdn
SQL SERVER 与ACCESS、EXCEL的数据转换
 
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下:
 
一、           SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 
  1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation 
  2Services(数据转换服务),然后选择  czdImport Data(导入数据)。 
  3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 
  4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。 
  5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 
6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
 
Transact-SQL语句进行导入导出:
1.         在SQL SERVER里查询access数据:
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名



2.         将access导入SQL server 

在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
      'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名


 
3.         将SQL SERVER表里的数据插入到Access表中
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 
(列名1,列名2)
select 列名1,列名2  from  sql表


 
实例:
insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'C:\db.mdb';'admin';'', Test) 
select id,name from Test
 
 
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename


 
 
二、           SQL SERVER 和EXCEL的数据导入导出
 
1、在SQL SERVER里查询Excel数据:

SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]


 
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * 
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


 
2、将Excel的数据导入SQL server :

SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]


 
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


 
3、将SQL SERVER中查询到的数据导成一个Excel文件

T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'


参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
 
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
 
 EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'



 
在VB6中应用ADO导出EXCEL文件代码: 
Dim cn  As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"


 
4、在SQL SERVER里往Excel插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

 
T-SQL代码:
INSERT INTO  
 OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  
 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  
 (bestand, produkt) VALUES (20, 'Test')  


总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!
 
参考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/ 
 
 
录入:changechange(CSDN) 责任编辑:cg1

#9


.  
新手来看:ADO的几种连接字串
作者:ec  更新日期:2003-8-17  浏览人次:342 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=78FAB71E1BDC

 
Data Source              OLE DB Connection String 
Microsoft Access
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=physical path to .mdb file 


Microsoft SQL Server 
Provider=SQLOLEDB.1;
        Data Source=path to database on server 


Oracle    
Provider=MSDAORA.1; 
        Data Source=path to database on server 


Microsoft    
Provider=MSIDXS.1;
        Data Source=path to file Indexing Service 


Data Source Driver      ODBC Connection String 
Microsoft Access   
Driver={Microsoft Access Driver (*.mdb)} ;
        DBQ=physical path to .mdb file 


SQL Server   
DRIVER={SQL Server};
        SERVER=path to server 


Oracle     
DRIVER={Microsoft ODBC for Oracle};
        SERVER=path to server 



Microsoft Excel  
Driver={Microsoft Excel Driver (*.xls)};
        DBQ=physical path to .xls file; 
        DriverID=278 


Microsoft Excel 97   Driver={Microsoft Excel Driver (*.xls)};
        DBQ=physical path to .xls file;
        DriverID=790 


Paradox   Driver={Microsoft Paradox Driver (*.db )};
        DBQ=physical path to .db file;
        DriverID=26 


Text     Driver={Microsoft Text Driver (*.txt;*.csv)}; 
        DefaultDir=physical path to .txt file 


Microsoft Visual FoxPro(with a database container)  Driver={Microsoft Visual FoxPro Driver}; 
        SourceType=DBC;
        SourceDb=physical path to .dbc file 


Microsoft Visual FoxPro (without a database container)    Driver={Microsoft Visual FoxPro Driver};
        SourceType=DBF; 
        SourceDb=physical path to .dbf file   
 
 
录入:changechange(CSDN) 责任编辑:cg1

#10


.  
关于jet db的连接字串,以及加密后的字串
作者:ec  更新日期:2003-3-4  浏览人次:471 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=72FABF1E10DC

 
问题:


关于jet db的连接字串,以及加密后的字串
ADO连接MDB文件的字串如何写?
加密以后如何写?

 

回答:


access数据库加密分3种
以下以access xp为例
1、工具 -> 安全-> 加密/解密数据库,打开时无需任何更改
2、工具 -> 安全-> 设置数据库密码,打开密码为 1 打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=1"


也可以用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID='admin';Password=;Jet OLEDB:Database Password='1'"


3、工具 -> 安全-> 用户组与权限 ....  ,用户名为 admin 密码为 rr 用户组文件为 c:\system.mdw,打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID=admin;Password=rr;Jet OLEDB:Database Password=1;Jet OLEDB:System database=c:\system.mdw"


也可以用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID='admin';Password='rr';Jet OLEDB:Database Password='1';Jet OLEDB:System database=c:\system.mdw"



 
请参考论坛上相关链接地址:
http://access911.net/bbs/UpLoadFile/2003342119632505.htm
[upload=htm]viewfile.asp?ID=6[/upload]

  
 
 
录入:changechange(CSDN) 责任编辑:cg1

#1


建议反方向来,直接在Access中建立链接表,然后用select into即可

#2


呵呵,我也想问问
如何在Access中做一个SQL Server的表链接呢?

#3


哦,我试成功了
建DSN-表链接

#4


--在SQL中,用查询语句读取有密码的ACCESS数据库的数据

SELECT * 
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\你的数据库.mdb";Jet OLEDB:Database Password=密码')...表名

#5



在ACCESS中,上传数据库到SQL(表已经存在的情况):

insert into [ODBC;Driver=SQL Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名
SELECT * FROM 表名

--如果是上传数据库到SQL(表不存在的情况):
SELECT * into [ODBC;Driver=SQL Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名
FROM 表名

#6


zjcxc(邹建)的回答太好了,长见识
另外想请教一下,以上语句的数据库引擎连接字符串部分的
书写标准可以参考什么资料?

#7


UP

#8


.  
SQL SERVER 与ACCESS、EXCEL的数据转换
作者:ec  更新日期:2003-8-26  浏览人次:173 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=78FAB21E13DC

 
转载自csdn
SQL SERVER 与ACCESS、EXCEL的数据转换
 
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下:
 
一、           SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 
  1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation 
  2Services(数据转换服务),然后选择  czdImport Data(导入数据)。 
  3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 
  4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。 
  5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 
6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
 
Transact-SQL语句进行导入导出:
1.         在SQL SERVER里查询access数据:
SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名



2.         将access导入SQL server 

在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 
      'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名


 
3.         将SQL SERVER表里的数据插入到Access表中
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名 
(列名1,列名2)
select 列名1,列名2  from  sql表


 
实例:
insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'C:\db.mdb';'admin';'', Test) 
select id,name from Test
 
 
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename


 
 
二、           SQL SERVER 和EXCEL的数据导入导出
 
1、在SQL SERVER里查询Excel数据:

SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]


 
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT * 
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


 
2、将Excel的数据导入SQL server :

SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]


 
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


 
3、将SQL SERVER中查询到的数据导成一个Excel文件

T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'


参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
 
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
 
 EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'



 
在VB6中应用ADO导出EXCEL文件代码: 
Dim cn  As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"


 
4、在SQL SERVER里往Excel插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

 
T-SQL代码:
INSERT INTO  
 OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  
 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  
 (bestand, produkt) VALUES (20, 'Test')  


总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!
 
参考:
http://www.itrain.de/knowhow/sql/transfer/adhoc/ 
 
 
录入:changechange(CSDN) 责任编辑:cg1

#9


.  
新手来看:ADO的几种连接字串
作者:ec  更新日期:2003-8-17  浏览人次:342 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=78FAB71E1BDC

 
Data Source              OLE DB Connection String 
Microsoft Access
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=physical path to .mdb file 


Microsoft SQL Server 
Provider=SQLOLEDB.1;
        Data Source=path to database on server 


Oracle    
Provider=MSDAORA.1; 
        Data Source=path to database on server 


Microsoft    
Provider=MSIDXS.1;
        Data Source=path to file Indexing Service 


Data Source Driver      ODBC Connection String 
Microsoft Access   
Driver={Microsoft Access Driver (*.mdb)} ;
        DBQ=physical path to .mdb file 


SQL Server   
DRIVER={SQL Server};
        SERVER=path to server 


Oracle     
DRIVER={Microsoft ODBC for Oracle};
        SERVER=path to server 



Microsoft Excel  
Driver={Microsoft Excel Driver (*.xls)};
        DBQ=physical path to .xls file; 
        DriverID=278 


Microsoft Excel 97   Driver={Microsoft Excel Driver (*.xls)};
        DBQ=physical path to .xls file;
        DriverID=790 


Paradox   Driver={Microsoft Paradox Driver (*.db )};
        DBQ=physical path to .db file;
        DriverID=26 


Text     Driver={Microsoft Text Driver (*.txt;*.csv)}; 
        DefaultDir=physical path to .txt file 


Microsoft Visual FoxPro(with a database container)  Driver={Microsoft Visual FoxPro Driver}; 
        SourceType=DBC;
        SourceDb=physical path to .dbc file 


Microsoft Visual FoxPro (without a database container)    Driver={Microsoft Visual FoxPro Driver};
        SourceType=DBF; 
        SourceDb=physical path to .dbf file   
 
 
录入:changechange(CSDN) 责任编辑:cg1

#10


.  
关于jet db的连接字串,以及加密后的字串
作者:ec  更新日期:2003-3-4  浏览人次:471 
 
 
 
专题地址:http://access911.net/index.asp?board=4&recordid=72FABF1E10DC

 
问题:


关于jet db的连接字串,以及加密后的字串
ADO连接MDB文件的字串如何写?
加密以后如何写?

 

回答:


access数据库加密分3种
以下以access xp为例
1、工具 -> 安全-> 加密/解密数据库,打开时无需任何更改
2、工具 -> 安全-> 设置数据库密码,打开密码为 1 打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=1"


也可以用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID='admin';Password=;Jet OLEDB:Database Password='1'"


3、工具 -> 安全-> 用户组与权限 ....  ,用户名为 admin 密码为 rr 用户组文件为 c:\system.mdw,打开时需要使用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID=admin;Password=rr;Jet OLEDB:Database Password=1;Jet OLEDB:System database=c:\system.mdw"


也可以用
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;User ID='admin';Password='rr';Jet OLEDB:Database Password='1';Jet OLEDB:System database=c:\system.mdw"



 
请参考论坛上相关链接地址:
http://access911.net/bbs/UpLoadFile/2003342119632505.htm
[upload=htm]viewfile.asp?ID=6[/upload]

  
 
 
录入:changechange(CSDN) 责任编辑:cg1