2016-12-05 91 views
0

我正在尝试创建一个MS Query以基于Excel中单元格的值从SQL数据库返回数据。我实际上已经成功完成了这一点,但仅限于1排。我不知道如何让它拷贝到其他行。从Excel查询SQL数据库

我创建了一个连接,如下所示: enter image description here

注意,SQL语句中包含的参数。该参数设置为指向特定的单元格: enter image description here

我想这是有道理的,因为我只希望每行返回1个值:问题是我有多行返回值。如何为多行返回每行的值?

我试着改变参数对话框中的单元格引用,但是这不起作用,因为Excel表格被设计为动态增长。

+0

我不认为你可以在没有VBA的Excel中执行此操作。使用VBA是相当平凡的。使用ADODB创建服务器连接。用参数循环你的范围。每个人创建具体的查询;执行查询;将记录集结果复制到单元格。你可以在网上找到很多ADODB教程。如果您的代码存在特定问题,请在此处发帖,我们很乐意提供帮助。问候。 – nbayly

回答

0

Excel数据连接的工作方式是每个连接只有一个SQL查询。所以为了做你想找的东西,你需要有很多联系,这不是“最佳实践”。 但是,有两种方法可以解决这种情况:
1.与所有数据建立单一连接并基于此创建数据透视表。然后使用VLOOKUP/INDEX将数据收集到您请求的单元格中。
2.如果数据太大,可以使用VBA代码根据您提到的单元格创建较小的查询,然后按第一个选项所述继续。

祝你好运。