首页 > 解决方案 > 如何通过excel更改SQL WHERE子句?

问题描述

我已经构建了一个 SQL 查询来为我提供产品的历史价格数据,我打算在 excel 中使用这些数据(数据透视图、图表,所有那些花哨的 excel 东西)。

现在的问题是,由于许多产品的性质和许多价格变化,我无法加载我打算加载的所有产品。

我需要以某种方式告诉 excel 必须更改连接的 SQL 查询中的几个数字,即通过文本框,然后再次加载查询。否则我总是会在 excel 中打开查询编辑器并手动更改它,这需要相当多的时间。

我认为我将不得不使用某种宏或 VBA,但我从未使用过它。如果有人可以参考一篇很棒的文章,因为我找不到任何有用的东西。

一些代码:

  WHERE


 PD.Product_Id = '11761476'  < I will have to change that number  


AND

PSPH.[Valid_To] > '2018-01-01'


ORDER BY 
PSPH.[Valid_To]

标签: sqlexcelvba

解决方案


要操作 SQL字符串,您可以执行以下操作。

pid = "11761476"
validto = "2018-01-01"

SQLtemplate = "WHERE PD.Product_Id = '[prodID]' AND PSPH.[Valid_To] > '[validto]' ORDER BY PSPH.[Valid_To]"

Sql = Replace(SQLtemplate, "[prodID]", pid)
Sql = Replace(Sql, "[validto]", validto)

但在您使用它之前,您需要遵循@Foxfire 的建议并在手动更改宏时录制宏,以查看需要更改的确切内容以及如何更改。


推荐阅读