有没有办法在连接中的SQL查询中使用Excel中的记录集或数据列?

时间:2015-02-13 16:28:03

标签: sql sql-server excel excel-vba vba

有没有办法在连接中的SQL查询中使用记录集?我在Excel中有一列数据,我目前正在循环以获取带有SQL查询的数据。如果我可以在查询中使用我的excel列来立即获取所有数据,那就太棒了。

我有一个Excel中一个查询的数据表,我想使用Excel中的ID在另一个服务器上的另一个数据库中执行另一个查询。现在我正在遍历列表,但这非常耗时。如果我可以读入ID列表并将它们包含在一个查询中,那将会快得多。

我第一次查询的数据得到:

  Site Name    Site ID   Pump ID    Pump Type    Meter ID    Site Health
  Abby         101       12b4ga7    HU1042C      83hagd6     Good
  Betty        312       734jdg2    HU1042C      19347xh     WARNING

我想要的是能够从Excel中读取泵和仪表ID列表,并在一个SQL查询的连接中将它们用于获取Pump&位于不同服务器中的仪表性能数据。

要进行单个查询会很困难,因为现在每个查询已经很大而且很混乱。此外,通过使用excel数据,它将允许用户添加额外的站点和泵数据。

是否可以使用ADO在VBA中执行此操作?

1 个答案:

答案 0 :(得分:0)

如下所示,请注意文件位置在服务器上:

--Excel 2007-2010
SELECT * --INTO #productlist
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0 Xml;HDR=YES;Database=C:\temp\product.xlsx',
    'SELECT * FROM [ProductList$]');

--Excel 97-2003
SELECT * --INTO #sitelist
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;HDR=YES;Database=C:\temp\product.xls',
    'select * from [ProductList$]');