我已经构建了一个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]
答案 0 :(得分:0)
要操作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的建议,并在手动更改宏时记录一个宏,以查看需要更改的内容以及更改的方式。
答案 1 :(得分:0)
您可以将其放在连接中:
WHERE
PD.Product_Id = '11761476' < ?
AND
PSPH.[Valid_To] > '2018-01-01'
ORDER BY
PSPH.[Valid_To]
然后保存连接。
它第一次运行时,会出现一个提示,询问您在哪里可以找到参数,您可以选择单元格。
让我知道它是否有效!
干杯
Arnaud