【问题标题】:Excel cell value as SQL Server Connection parameterExcel 单元格值作为 SQL Server 连接参数
【发布时间】:2016-04-21 07:25:01
【问题描述】:

我正在尝试将 SQL Server 2012 数据导入 Excel 2013。

您可以查看我的示例命令文本。如果我手动编写日期参数,如下所示:

set @dt = getdate()

效果很好。但我需要将 Excel 单元格值传递给它,例如A1 值,如图所示。是否可以?如果是,怎么做?

请注意:我确实想使用vba宏连接,只需要通过这个表格传递。

【问题讨论】:

  • 如果您使用 Microsoft Query 而不是数据连接文件,“参数...”将可用。见support.office.com/en-us/article/…
  • 不,这同样适用于 Excel 2013。使用 Data -> From Other Sources -> From Microsoft Query,定义一个查询,并在其中使用参数占位符 (?)。这将允许您将参数绑定到单元格。查询是古老的,它有一些限制,但它在 2013 年确实有效。来源:我刚刚测试过。
  • Query 有一个“SQL”按钮,只要 SQL Server 可以运行它,您就可以输入任何您喜欢的 SQL 语句。查询会抱怨它不能代表查询,但这没关系——你没有义务使用设计器。 (如果你有多个语句,那就不好了。)也就是说,在不知道你的确切查询的情况下(这可能比SELECT * FROM [..] 更复杂)我不能肯定地说。
  • 另一个与多语句查询结合使用的选项是利用存储过程;您可以根据自己的喜好将它们复杂化。

标签: sql sql-server excel excel-2013


【解决方案1】:

Jeroen 的回答也适用于 SQL 查询,但如何实现它们并不明显,因为 Excel 似乎没有提前公开该选项,并且“参数”按钮显示为灰色。

用问号代替used in the query的值编写查询:

SELECT * FROM dbo.TABLE AS T where t.Date = ?

保存查询后,a prompt appears 可让您选择一个单元格或范围以用作代替问号的值。

【讨论】:

    【解决方案2】:

    Tedo,这个视频可能对你有帮助:

    VideoTutorial - Excel cell value as SQL Server Connection parameter

    这里我将 Excel 单元格值设置为 SQL Server 连接参数,“这个视频是我的”

    问候。

    【讨论】:

    • 我不使用 VBA 宏连接(带有 Microsoft Visual Basic 的 ADO)
    • 谢谢,但 Jhony,但这是 Jeroen Mostert 已经说过的。那不适合我的情况。我很感兴趣是否有机会为我在图片上显示的连接框中的查询提供参数,只要我没有得到答案 - 我认为没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2014-07-25
    • 2016-05-21
    • 1970-01-01
    相关资源
    最近更新 更多