Excel 不带VBA的动态数据连接字符串

Excel 不带VBA的动态数据连接字符串,excel,Excel,连接字符串是否可能取决于.xlsx文件(即非启用宏的工作表)中的单元格值或命名公式 背景: 每个月我都会创建一个新工作簿并更新外部数据源。这样我就有了每个月的工作手册和结果,并且可以随时回顾上个月的数据 现在,由于我在同一数据上使用多个透视表,所以我使用数据连接。连接字符串如下所示,数据源是相关的 Provider=Microsoft.ACE.OLEDB.12.0; User ID=Admin; Data Source=C:\pathtofile\myworkbook1705.xlsx; Mo

连接字符串是否可能取决于
.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

我四处寻找,但没有成功。不幸的是,没有回答这个问题的相关链接链接如下

  • (更新的标准点击方式)
  • (VBA解决方案)
  • (连接串变更的VBA解决方案)

长话短说-。这样做是一个巨大的安全问题。如果您找到了解决方法,请立即通知Microsoft,他们会很乐意解决此问题:)

从Excel中的单元格中读取数据肯定会被认为是一种糟糕的做法,因为任何人都曾用SQL赚过一美元。我的意思是,连接字符串可能是您拥有的最敏感的信息。即使使用VBA,也要确保用户始终在单元格(或通过表单)中写入密码,然后将其删除在代码中硬编码


很多人都认为微软很糟糕,但他们永远不会在产品中留下这样一个安全漏洞。

您是否尝试过以下方法:我甚至没有考虑过如果可能的话可能会涉及的安全问题。既然你指出了,我完全明白了。嗯,至少我很感激得到回复!我将确保制定一个适当的安全VBA解决方案:)@Therkel-祝您好运。一般来说,如果你看看我的GitRepo,这里有一些简单的密码保护方法。例如,您可以使用
str_connection_string
函数读取用户的输出,并将其他内容作为密码传递给数据库,因此用户不需要知道真正的密码。另外,如果您确保始终删除电子表格中用户的条目,用户在其中输入密码,您将有点安全。