Sql server 使用SQL查询中的列表将数据导入Excel

Sql server 使用SQL查询中的列表将数据导入Excel,sql-server,excel,csv,import,Sql Server,Excel,Csv,Import,我试图在Excel中运行一个select查询,从MSSQL服务器导入信息。我还有一个.csv文件中的客户列表。 目标是只导入.csv列表中客户端的记录,但我无法让Excel查看列表(它被导入到Sheet2)。我一直收到无效的对象名错误 我不相信没有VB就不能做到这一点,但我尝试了MS和其他线程的例子,但没有运气 我使用的基本查询是: SELECT "Clients"."cltCode", "Clients"."cltClientName" FROM "dbo"."Clients" "Cli

我试图在Excel中运行一个select查询,从MSSQL服务器导入信息。我还有一个.csv文件中的客户列表。 目标是只导入.csv列表中客户端的记录,但我无法让Excel查看列表(它被导入到Sheet2)。我一直收到无效的对象名错误

我不相信没有VB就不能做到这一点,但我尝试了MS和其他线程的例子,但没有运气

我使用的基本查询是:

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

SELECT 
"Clients"."cltCode", "Clients"."cltClientName"
FROM   "dbo"."Clients" "Clients"   
WHERE cltClientName IN ( SELECT * FROM [Sheet2!A:A])
指定数据的确切位置

FROM [Sheets2!A2:C4]

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

您可以发布您正在使用的VBA代码吗?您不能使用单个查询跨两个源进行连接。您需要构造“in”子句,然后将其插入主查询。仍然相同:对象名称无效。即使我修剪整个查询并只保留“SELECT*FROM[Sheet2!A1:A10]”,我也会得到这个结果。我注意到不同类型的连接有不同的可用选项。我一直在使用OLEDB查询。这可能是一个原因吗?正如我前面提到的,您不能跨两个不同的数据源(SQL Server和Excel)使用单个查询。