sql server 外部连接中的查询参数

Dan*_*Dan 6 query sql-server parameters microsoft-excel microsoft-excel-2010

我想做到这一点:http : //dailydoseofexcel.com/archives/2004/12/13/parameters-in-excel-external-data-queries/但我想在 Excel 2010 中做到这一点,而且我正在查询 SQL服务器而不是 MS Access。是否可以?

要详细说明我想要从该链接中获得的内容,请使用引用工作表中单元格的查询参数。目前我正在使用 VBA 和一个单元格更改触发事件。有没有更简单的方法?


注意:任何在接受的答案中使用该方法的人,如果您希望电子表格在未安装 SQL Server 的计算机上工作,那么您可能会发现这很有帮助:https : //dba.stackexchange.com/ a/109221/46815

Pet*_*ngs 11

所以我终于想通了。这是我的步骤。

  1. 打开一个新的 Excel 工作表(我使用的是 Excel 2010)
  2. 单击功能区上的数据选项卡
  3. 单击“来自其他来源”的下拉菜单
  4. 选择“来自 Microsoft Query”
  5. 选择您的数据源
  6. 选择任何表来填充查询框中的列 - 这无关紧要,因为我们稍后会覆盖它 - 然后单击下一步
  7. 继续单击下一步直到到达完成按钮,然后单击完成
  8. 点击“属性...”
  9. 单击“定义”选项卡
  10. 连接类型应该是“Database Query”——如果是这样,你可以添加参数,如果不是,它似乎无法添加参数
  11. 使用您想用来访问 SQL 数据库的查询更新您的命令文本 - 尚未尝试使用其他数据库,但我确信它适用于其他数据库
  12. 为了创建一个参数,简单地放一个?在 where 子句中。例如 select * from table1 where col1 = ?

添加参数存在一些问题。它们只在最后的 where 子句中起作用。即,如果您使用子查询、枢轴、cte 等,则无法在其中添加参数。仅在最后的 where 子句中

  1. 单击“确定”两次 - 将出现一个弹出窗口,要求您输入参数

  2. 填写任何内容 - 我们稍后会更改

  3. 单击结果中的任意位置,然后单击功能区数据选项卡上的“属性”

  4. 点击小手属性图标

  5. 单击定义选项卡

  6. 您现在将看到“参数...”按钮是可点击的。单击它并将选项从提示输入值更改为从以下单元格获取值

如果有人找到了一种更快、更简单的方法 - 我全神贯注,但这始终有效,并且可以处理非常复杂的查询。所以对我们来说,这是正确的解决方案