Sql server 使用单元格范围作为SQL Server数据连接中的Where值

Sql server 使用单元格范围作为SQL Server数据连接中的Where值,sql-server,excel,excel-2010,Sql Server,Excel,Excel 2010,我正在使用Excel中的一个工具快速验证一组数据库的数据更新 在表1中,我将有源数据,它由5列组成;列A是主键。这将作为CSV交付,并复制/粘贴到图纸中 在表2中,我希望有一个到数据库机器的数据连接,该数据库机器对表1的a列的值进行过滤,以便只返回和显示表1中的主键 我已尝试在“连接属性”对话框中查看设置参数,但该按钮已禁用: 先谢谢你 编辑:这是Excel 2010,此图显示了我用于在第2页上创建连接的方法: 编辑2:尝试使用Microsoft Query创建连接,但仍处于禁用状态 只能使

我正在使用Excel中的一个工具快速验证一组数据库的数据更新

在表1中,我将有源数据,它由5列组成;列A是主键。这将作为CSV交付,并复制/粘贴到图纸中

在表2中,我希望有一个到数据库机器的数据连接,该数据库机器对表1的a列的值进行过滤,以便只返回和显示表1中的主键

我已尝试在“连接属性”对话框中查看设置参数,但该按钮已禁用:

先谢谢你

编辑:这是Excel 2010,此图显示了我用于在第2页上创建连接的方法:

编辑2:尝试使用Microsoft Query创建连接,但仍处于禁用状态


只能使用Microsoft Query在Excel中添加和管理查询参数。因此,当您创建连接时,在“从其他源”按钮下拉列表中,选择“从Microsoft Query”而不是“从SQL Server”(或任何其他源)。

您可以向SQL查询以及Microsoft查询添加查询参数,只需在SQL查询中放置一个
,参数按钮就会激活,或者,下次刷新连接时,将显示一个对话框提示输入数据


看起来可以使用多个参数,但是我还没有找到一个有效的语法。

您是如何在Sheet2上建立连接的?这是什么版本的Excel?@rbaryyoung已编辑以包含此信息。我已使用Microsoft查询创建了连接,但“参数”按钮仍处于锁定状态。您是否先编辑查询文本以添加参数的问号(“?”)?执行此操作“where code=?”后,会出现参数按钮,但它似乎只允许我从单个单元格而不是范围中获取参数。是的,没错。直到最近,SQL参数还必须是标量值。例如,单个数字、字符串或日期,它们不能是列表、数组或任何其他数据结构。新功能(将表/列表作为参数发送)只能从ADO.Net访问,Excel不使用ADO.Net。因此,是的,只有单个单元格可以作为查询参数,而不是范围。要在Excel中执行此操作,您必须编写一个Excel VBA过程,从范围中提取所有键值,然后将它们全部发送到数据库(使用一种或另一种kludgy方法),以便SQL可以比较它们并返回匹配项。