从Excel更改SQL中的select语句-最终用户

从Excel更改SQL中的select语句-最终用户,sql,sql-server,excel,Sql,Sql Server,Excel,我有一个相当大的SQL语句,我已经连接到Excel工作表,它运行良好。我的问题是,是否可以让最终用户在excel工作表或其他地方输入值列表,并将这些值添加到我的SQL中的WHERE子句中,以根据用户需要限制结果,而无需用户连接和更改SQL等。?多谢各位 是的。我把它作为VB脚本的一部分。我不是一个VB专家,我没有设置它-我只是知道足够的调整一些用户需要的更改 概念上-在Excel模板中提供一个区域,供用户输入参数,使用VB获取这些参数的值,然后将其传递给SQL语句。您可以在Excel中创建使用参

我有一个相当大的SQL语句,我已经连接到Excel工作表,它运行良好。我的问题是,是否可以让最终用户在excel工作表或其他地方输入值列表,并将这些值添加到我的SQL中的WHERE子句中,以根据用户需要限制结果,而无需用户连接和更改SQL等。?多谢各位

是的。我把它作为VB脚本的一部分。我不是一个VB专家,我没有设置它-我只是知道足够的调整一些用户需要的更改


概念上-在Excel模板中提供一个区域,供用户输入参数,使用VB获取这些参数的值,然后将其传递给SQL语句。

您可以在Excel中创建使用参数的数据连接。无论是在DB上调用存储过程还是发送原始SQL,都可以用?替换语句的一部分?。将该参数绑定到特定单元格。现在,用户需要做的就是在该单元格中输入/更改值,它将使用该值作为参数重新查询数据库


(我面前没有Excel,否则我会指导您完成确切的步骤)

您的SQL是如何“连接”到工作表的?数据->连接>从SQL Server,然后粘贴到属性中的。有没有更好的方法允许用户输入可以改变WHERE子句?这是迄今为止我所学的连接和启用自动更新的唯一方法。在查看连接的同时尝试录制宏,然后查看是否可以编辑该宏。如果遇到问题,请使用VBA发回。我们没有足够的信息。您是否尝试基于单列、多列进行筛选,是否尝试在()中执行
IN
函数(如果它只返回列值在列表中的结果,或不在列表中,或大于或小于列表中的值。如果您只需要少量的筛选器,如日期或单个值,最好使用参数开始,它涵盖了基本内容。这是最好的方法,因为您实际上不必编写任何VBA。我想基于一列的use IN()-报表现在返回所有值(在本例中为articles)但是不同的业务部门只想看到他们的相关文章。我会看一看这篇文章-非常感谢你的回复。我在Excel中有一个连接,但我还没有弄清楚如何使用参数来实现这一点-我可以将SQL作为完整查询或存储过程放入,但不确定哪一个更好