Excel:将查询结果直接保存到CSV文件

时间:2013-09-24 21:33:24

标签: sql excel csv adodb

我在Excel中有一个数据集,我必须将各种部分保存到新的csv文件中。我使用SQL来选择需要保存的部分。我希望有人会指导我使用SQL将此选择保存到csv。

SQL给了我一个记录集,但我想只是作为最后的手段循环它。我希望有一种更好的方法,如果可能的话,直接从查询本身中保存整个结果。

Remou在Want VBA in excel to read very large CSV and create output file of a small subset of the CSV上的解决方案就是我正在寻找的东西。但不幸的是,我无法让它发挥作用。

1 个答案:

答案 0 :(得分:0)

假设您使用的是Excel VBA,打开了ADODB并将Recordset对象连接到数据库,并且您希望将内容保存为CSV(从Excel VBA中)。

最简单的方法仍然是循环记录集中的记录。

但是,由于您已经将其排除(无论出于何种原因),因此下一个选项是使用Recordset.Save <StreamObject>方法。创建一个System.IO.Streamwriter对象以传递给Recordset.Save

OR,如果您使用Jet SQL,另一种方法是:

conDB.Execute "SELECT * INTO [Text;Database=" _
               & vsCSVFolder _
               & ";HDR=No;FMT=Delimited].[" _
               & vsCSVFileame _
               & "] FROM Attendance", _
                 DBExport, _
                 adCmdText Or adExecuteNoRecords

希望这有帮助。