没有VBA的动态数据连接字符串

时间:2017-06-29 11:27:57

标签: excel

是否可以使连接字符串取决于.xlsx文件中的单元格值或命名公式(即非启用宏的工作表)?

背景:

每个月我都会创建一个新工作簿并更新外部数据源。通过这种方式,我可以获得每月结果的工作簿,并且可以随时返回查看过去一个月的数据。

现在,由于我在同一数据上使用多个数据透视表,因此我使用数据连接。连接字符串看起来像这样,其中数据源是相关的。

Provider=Microsoft.ACE.OLEDB.12.0;
User ID=Admin;
Data Source=C:\pathtofile\myworkbook1705.xlsx;
Mode=Share Deny Write;
Extended Properties="HDR=NO;
";
Jet OLEDB // etc. etc //

我通常手动更新数据源路径,但由于我想将项目扩展到其他多个任务,因此手动更新过程变得令人厌烦(在文件路径中将1705更改为1706来自单元格值。)

有几个原因阻止我在VBA中制作解决方案:

  • 启用宏的文件中的安全警告。
  • 用户知道Excel表格为.xlsx,可能无法识别.xlm
  • 继承。我的继任者,最终需要在工作表中编辑某些东西,可能不知道VBA。

我搜索过没有成功。遗憾的是,不回答问题的相关链接如下所示。

1 个答案:

答案 0 :(得分:1)

长话短说 - 。这种方式是一个巨大的安全问题。如果你找到了办法,立即通知微软,他们很乐意解决它:)。

任何曾经通过SQL获得一美元资金的人从Excel中的单元格中读取数据肯定会被认为是一种不好的做法。我的意思是,连接字符串可能是您拥有的最敏感的信息。即使您使用VBA,也请确保密码始终由用户在单元格中(或通过表单)写入,然后擦除。代码中硬编码。

很多人认为微软很糟糕,但他们的产品绝不会留下这样的安全漏洞。