Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA中的SQL:从SQL查询在VBA中创建临时表(供重用)_Sql_Sql Server_Vba_Excel - Fatal编程技术网

Excel VBA中的SQL:从SQL查询在VBA中创建临时表(供重用)

Excel VBA中的SQL:从SQL查询在VBA中创建临时表(供重用),sql,sql-server,vba,excel,Sql,Sql Server,Vba,Excel,我一直在疯狂地寻找一种直截了当的方法来解决这个问题,但我遇到的大多数答案都偏离了正题,而不是直接解决问题 下面是我试图通过VBA运行的一个简化SQL代码段 SELECT * INTO ##Customers FROM Addresses SELECT * FROM ##Customers a LEFT JOIN PostageRate b ON a.ZipCode=b.ZipCode 然后我需要把所有这些数据放到Excel表格中 到目前为止,我能够执行: SELECT * FROM Add

我一直在疯狂地寻找一种直截了当的方法来解决这个问题,但我遇到的大多数答案都偏离了正题,而不是直接解决问题

下面是我试图通过VBA运行的一个简化SQL代码段

SELECT * INTO ##Customers FROM Addresses 
SELECT * FROM ##Customers a LEFT JOIN PostageRate b ON a.ZipCode=b.ZipCode 
然后我需要把所有这些数据放到Excel表格中

到目前为止,我能够执行:

SELECT * FROM Addresses 
这是没有临时表的第一个查询的功能等价物。我得到了一个
记录集
,然后使用
CopyFromRecordSet
将其放入一张表中,但我不知道如何将该
记录集
转换成一个表,这样我就可以在第二次查询中查询它,在第二次查询中,我执行左连接,然后将生成的
记录集
放到表中

当然,我试图运行的查询比这个查询更复杂,但这说明了我试图实现的目标

如果我错过了一篇回答这个问题的帖子,我会向你道歉,但我还没有遇到过

谢谢

编辑:我研究了如何将第一次查询中的数据放到一张表中,并将该表作为第二次查询的表。问题如下:
工作表是本地的,第二个表位于数据库中。根据,数据库需要访问Excel表。事实并非如此。如果您对如何通过VBA实现临时表有更多的了解,我们将不胜感激。谢谢大家

您可以使用ACE.OLEDB提供程序通过ADODB查询excel工作表。工作表是表。我不明白为什么不能只使用子查询,或者使用表值函数来构建临时表。为什么需要在excel中存在临时表?我想如果你的第二个查询是在不同的数据源上,这是有意义的…@JeffUK我不介意临时表是在DB服务器中创建的,而不是本地表。您能告诉我如何通过Excel VBA进行此操作吗?谢谢你的帮助@我想我能做到。我希望在记忆中完成这一切,而不是在使用前随地吐痰。虽然我的思维过程没有很好的逻辑基础,只是感觉。。。不雅的。。。谢谢你的帮助!我会说,在服务器中创建一个视图,然后查询该视图并在excel中导入。如果我要做任何复杂的事情,我会尽可能多地使用数据库工具。
SELECT * FROM 
(SELECT * from [Addresses]) AS Customer 
LEFT JOIN PostageRate 
ON (customer.zipcode = PostageRate.zipcode)