Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 电源查询&x2B;VBA/宏与仅VBA/宏_Sql_Excel_Excel 2010_Powerquery_Vba - Fatal编程技术网

Sql 电源查询&x2B;VBA/宏与仅VBA/宏

Sql 电源查询&x2B;VBA/宏与仅VBA/宏,sql,excel,excel-2010,powerquery,vba,Sql,Excel,Excel 2010,Powerquery,Vba,我将在这里简要解释我拥有和需要什么,如果可以的话,我将编辑这篇文章并添加一个可复制的例子 我的项目: 将Oracle数据库中的数据查询到Excel中的一个工作表中,然后使用查找过程将数据复制到第二个工作表中的可编辑表中。第二个工作表需要采用表格格式进行筛选,并具有按日期范围筛选数据的下拉选项。数据每周只需由1-2名经批准的工作人员刷新1-2次 关注事项: 根据建议,我安装了PowerQueryforExcel2010,它需要依赖项才能工作。便利性因素非常好,因此可以编辑SQL查询,而不必在VBA

我将在这里简要解释我拥有和需要什么,如果可以的话,我将编辑这篇文章并添加一个可复制的例子

我的项目: 将Oracle数据库中的数据查询到Excel中的一个工作表中,然后使用查找过程将数据复制到第二个工作表中的可编辑表中。第二个工作表需要采用表格格式进行筛选,并具有按日期范围筛选数据的下拉选项。数据每周只需由1-2名经批准的工作人员刷新1-2次

关注事项:
根据建议,我安装了PowerQueryforExcel2010,它需要依赖项才能工作。便利性因素非常好,因此可以编辑SQL查询,而不必在VBA代码中乱来。但是,依赖项设置(Oracle client for data connections)限制了将其作为解决方案随意部署

数据连接和查询以及数据查找都可以在VBA和指定的宏中完成

问题: 我应该使用Power Query查询数据,然后使用VBA进行第二次工作表查找和日期范围筛选,还是应该全部用VBA Excel宏编写

哪一个更适合未来?使用Power查询是否有任何优势,可以使此任务对非编码人员更加友好


谢谢

这可能只能用PowerQuery解决,而不用VBA。我不建议您将查询存储在Excel表中,最好是将其移动到服务器上。视图或功能将是合适的。查询数据库、编辑此视图/功能仅适用于已批准的用户。 这更安全,只需要1个Excel工作簿。在PowerQuery中,您可以在刷新表时引用表的旧副本,因此可以保留输入的数据并获取新数据


在我看来,您的项目是一个临时解决方案。

无论您是使用Power Query还是VBA中的ADO,都需要安装Oracle客户端。这是DB连接所必需的。至于编辑SQL,您可以将查询存储在工作表上(如果需要,可以隐藏),在工作表中可以轻松调整查询。您是对的,解决方案是临时的。我主要需要一种简单的方法,让分析师在将来移动到新数据库时更改TNS信息。我那时不在,他们很可能很难让其他人更改。如果我保留PowerQuery,我可以使用vba复制查询的表、添加下拉日期范围筛选器和刷新按钮吗?有没有一种方法可以在PowerQuery中不使用vba的情况下完成所有这些工作?@JonStarnes PowerQuery通常是一个表的数据源,因此您可以对生成的表执行任何操作,但请记住它会刷新(添加和删除行)。只是为您需要的列分配一个命名范围。我没有的是一个作为查询表的工作表,第二个工作表是一个可编辑的副本。因此,原始查询表保持原样,副本是工作人员工作的地方。@JonStarnes为什么需要单独的查询表副本?您的员工只是添加新行,还是同时编辑现有数据?