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;
希望这可以帮助。