Excel:使用单元格值作为SQL查询的参数

我正在使用MS Excel通过ODBC从MySQL数据库获取数据。
我成功地使用SQL查询获取数据。 但是现在我想要查询参数化。
所以我不知道是否有可能使用单元格值(电子表格单元格)作为这种查询的参数。
例如,对于这个查询:

select name from user where id=1 

我想从电子表格中的单元格D4中获取id值。

这是正确的方法来参数化查询? 我该怎么做呢?

谢谢。

我和你有同样的问题,诺比可以理解我,但是我用这种方式解决了。

 SELECT NAME, TELEFONE, DATA FROM [sheet1$a1:q633] WHERE NAME IN (SELECT * FROM [sheet2$a1:a2]) 

您需要在其他工作表中插入一个参数,SQL会考虑像数据库这样的信息,然后您可以select信息并将它们比较为您喜欢的参数。

如果您使用的是Microsoft查询,则可以添加“?” 到您的查询…

从用户名中selectid =?

当你回到excel时,会popup一个小窗口,询问单元格/数据等等。

在popup窗口中,您也可以select“始终使用此单元格作为参数”,无需每次刷新数据时都定义该单元格。 这是最简单的select。

 queryString = "SELECT name FROM user WHERE id=" & Worksheets("Sheet1").Range("D4").Value 

SQL有点像MS SQL的语法。

 SELECT * FROM [table$] WHERE *; 

表名以$符号结尾并将所有内容放在括号中是很重要的。 作为条件,你可以使用任何值,但到目前为止,Excel不允许我使用我所谓的“SQL撇号”('),所以build议在一个字中列标题。

如果您的用户名为“用户”,列表中的用户名称为“ID”,列名称为“名称”,则查询内容如下所示:

 SELECT Name FROM [Users$] WHERE id = 1; 

希望这可以帮助。