在SQL查询中使用列表将数据导入Excel

问题描述:

我试图在Excel中运行一个从MSSQL Server导入信息的select查询。我还有一个.csv文件中的客户列表。 目标是仅导入.csv列表中的客户端记录,但我无法让Excel查看列表(它被导入到Sheet2)。我不断收到无效的对象名称错误。在SQL查询中使用列表将数据导入Excel

我不能相信这不能没有VB,但尝试从MS和其他线程没有运气的例子。

我使用的基本查询:

SELECT 
"Clients"."cltCode", "Clients"."cltClientName" 
FROM "dbo"."Clients" "Clients" 
WHERE cltClientName IN (SELECT * FROM [Sheet2!A:A]) 

感谢。

+0

您能发布您正在使用的VBA代码? – LittleBobbyTables 2012-07-17 16:20:47

+0

您无法使用单个查询来加入这两个来源。您需要构建“in”子句,然后将其插入到主查询中。 – 2012-07-17 16:22:41

你不能那样做。您必须在VBA中自己构建包含列表(“IN”部分),构建查询并刷新数据连接(或构建命令,运行查询,遍历结果并填充目标范围/工作表)

SELECT 
"Clients"."cltCode", "Clients"."cltClientName" 
FROM "dbo"."Clients" "Clients" 
WHERE cltClientName IN (SELECT * FROM [Sheet2!A:A]) 

指定数据的确切位置。

FROM [Sheets2!A2:C4] 
+0

仍然一样:无效的对象名称。即使我修剪整个查询并只保留'SELECT * FROM [Sheet2!A1:A10]',我也会得到这个结果。我注意到不同类型的连接有不同的选项。我一直在使用OLE DB查询。这可能是一个原因吗? – GRegorious13 2012-07-18 08:09:48

+0

如上所述,您不能在两个不同的数据源(SQL Server和Excel)中使用单个查询。 – 2012-07-18 16:01:11