估计是你的ConnectionString设置错了..你可能只设置了Expressions的ConnectionString为你的变量..
应该要修改一下.为"Data Source="+@[user::filename]+";Provider=Microsoft.Jet.OLEDB.4.0;"试试.
应该要修改一下.为"Data Source="+@[user::filename]+";Provider=Microsoft.Jet.OLEDB.4.0;"试试.
你是同时导多个ACCESS库还是一个access库中的多个表?如果是后者,在导的时候选择多个表即可.
如果是前者,没搞过.
项目背景:
1. 从指定的文件夹中把acess数据库中几个表的数据导入到sql server 2005的数据库中的对应表
2. 把已经导入数据的acess数据库文件移动到一个指定的文件夹
3. 按照1,2两个步骤批处理acess数据库文件(库结构是一样的)
我的处理方法:
首先:在control flow中,使用数据流任务和文件传输任务,实现了单个acess库中表的数据导入到sql server 2005 中的对应表中,同时数据成功导入后把文家移到另外的一个文件夹中。
然后:我采用foreach容器,
配置foreach容器操作类型为文件类型,添加变量,定义为文件变量
再次,修改数据流任务中的源连接管理器的变量如图所示:
具体的connectionstring为:"Data Source="+ @[用户::filename]+";Provider=Microsoft.Jet.OLEDB.4.0;"
文件源的连接管理也修改了,
―――――――――――――――――――――――――――――――――――――――
编译说oledb的连接出错,
错误如下:
已获得OLE DB 记录。源:“Microsoft JET Database Engine”Hresult: 0x80004005 说明:“找不到文件'E:\上报数据\南宁市本级南宁市第三十三中学高中贫困生'。”。
错误: 0xC020801C,位于数据流任务, OLE DB 源[1]: 对连接管理器“soure oledb”的AcquireConnection 方法调用失败,错误代码为0xC0202009。
错误: 0xC0047017,位于数据流任务, DTS.Pipeline: 组件“OLE DB 源”(1) 未能通过验证,返回的错误代码为0xC020801C。
错误: 0xC004700C,位于数据流任务, DTS.Pipeline: 一个或多个组件未能通过验证。
错误: 0xC0024107,位于数据流任务: 任务验证期间出错。
警告: 0x80019002,位于Foreach 循环容器: Execution 方法成功,但出现的错误数(5)达到了允许的最大值(1),因此导致失败。当错误数达到MaximumErrorCount 中指定的数目时将发生这种情况。请更改MaximumErrorCount 或纠正这些错误。
警告: 0x80019002,位于Package: Execution 方法成功,但出现的错误数(5)达到了允许的最大值(1),因此导致失败。当错误数达到MaximumErrorCount 中指定的数目时将发生这种情况。请更改MaximumErrorCount 或纠正这些错误。
SSIS 包“Package.dtsx”已完成: 失败。
程序“[2968] Package.dtsx: DTS”已退出,返回值为0 (0x0)。
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
-------------------------------------------------------------------------------------------------