SQL 查询的 Excel 参数

Posted

技术标签:

【中文标题】SQL 查询的 Excel 参数【英文标题】:Excel Parameters to SQL Query 【发布时间】:2014-11-12 16:28:28 【问题描述】:

我查看了老忠实的谷歌,但我找不到我正在寻找的场景。我目前想通过工作表中的 SQL 语句从一个单元格传递一些工作订单,但我无法让它与多个参数一起工作。

我的 TSQL 语句是这样的

select * from Order where OrderNo IN ('GNR1','GNR2')

我想将参数GNR1GNR2等放入我的excel工作簿中的一个单元格“A1”并带回必要的记录,我对一个参数没有问题,但传递更多超过 1 个我正在努力解决的问题,任何人都可以提供帮助。

我正在使用 SQL Server 2012 和 Excel 2010

【问题讨论】:

我同意允许用户在多个单元格中输入值,然后重新格式化它们以传递给 sql,但不幸的是它们可以有从 1 到 151 的任意数量的值,我会解决的您的建议并努力使它们发挥作用...感谢您的宝贵建议 我一直在玩你的建议,让用户在特定单元格中输入订单,然后将它们重新格式化为 SQL 中的普通 In 语句,但是在运行代码时,我得到了字符串数据,来自SQL Server Drive的右截断错误我在格式化时尝试传递的参数看起来像('GNR68003054','GNR68003055')所以应该没有问题,任何想法为什么会发生这种情况?? 【参考方案1】:

您需要将'GNR', 'GNR2' 替换为问号?。这应该允许您“参数化”查询。然后单元格A1 需要是字符串的精确表示。

将参数? 指向单元格A2 或其他一些单元格,甚至是不同工作表上的单元格可能会有所帮助。也就是说,允许最终用户以自然的方式输入参数,然后在将参数传递给查询之前在其他地方进行实际格式化(添加单引号)。

一些额外的资源:@​​987654321@ 和 here

【讨论】:

【参考方案2】:

如果可以分隔单元格中的值,则可以使用字符串拆分方法并将其分配给代码中的参数,然后根据这些参数值调用查询或存储过程。如前所述,将参数值分隔到多个单元格会容易得多。

【讨论】:

以上是关于SQL 查询的 Excel 参数的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查询的 Excel 参数

使用 VBA 在 Excel 中的 SQL 表上使用参数化查询

将参数从 Excel 工作簿中的单元格传递到 SQL 查询

excel中的sql查询

从 Excel VBA 运行工作参数化 Access SQL 查询 (INSERT INTO) 时出现“需要对象”错误

如何在 excel microsoft 查询中将变量声明为参数?