0

我有一堆启用宏的 Excel 文件。我想用 SQL Query 遍历它们中的每一个 - select * from [Sheet1$A10:AZ100]。当我选择一个文件时,我的 Excel 连接管理器工作,但是当我添加一个 For Each 循环任务并将我的变量分配给它时,出现了一个大问题。我的步骤是:

  • 创建新连接:Excel 连接管理器 我选择文件夹中的第一个 XLSM 文件,然后点击确定。

  • 拖放每个循环容器并双击。在集合中:我选择 For Each File Enumerator 并在文件夹中指定文件夹路径。在文件中:*.xlsm 最后一个选项是:完全限定
    在变量映射中:我创建了一个名为“FileFound”的新变量

  • 在 For Each Container 中拖放数据流任务并双击。

  • 拖源助手:选择上面创建的 Excel 连接管理器

  • 双击 Excel 源和数据访问模式:我选择 SQL 命令。我的查询是select * from [Sheet1$A10:AZ100]。此查询对于所有 XLSM 文件都是相同的。

  • 单击列,我的数据显示一切正常

现在这是问题开始的地方 -

右键单击 Excel 连接管理器,然后单击属性。

  • 我先复制我的连接字符串。我的连接字符串是:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Excel data\ABCDE.xlsm;Extended Properties="Excel 12.0 MACRO;HDR=YES";

  • 我单击表达式并在属性中选择连接字符串。接下来我将我的表达式编辑为: "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @[User::FileFound] + " ;Extended Properties=\"Excel 12.0 MACRO;HDR=YES\";" 这计算正确。

  • 然后我将 Excel 连接管理器的延迟验证设置为 TRUE

  • 我将每个容器的延迟验证设置为 TRUE

我得到的错误是:

错误信息

如何解决此错误?我已经尝试了很多并阅读了所有内容,但无法超越这一点。

4

1 回答 1

1

我修好了它!!

我必须右键单击“Excel 连接管理器”的属性,而不是ConnectionString在扩展属性中选择,我必须选择Excel File Path.

于 2016-04-28T04:05:15.613 回答