2013-09-24 2 views
0

Excel에서 데이터 집합을 가져 왔습니다.이 중 데이터 집합을 새 CSV 파일에 저장해야합니다. SQL을 사용하여 저장해야하는 부분을 선택했습니다. 누군가가 SQL을 사용하여 csv에이 선택 사항을 저장하는 것에 대해 안내 할 것이라고 기대하고있었습니다.Excel : 쿼리 결과를 CSV 파일에 직접 저장

SQL은 나에게 레코드 세트를 제공하지만 최후의 수단으로 만 루프를 진행하고 싶습니다. 가능한 경우 쿼리 자체 내에서 전체 결과를 직접 저장하는 더 나은 방법이 있기를 바라고 있습니다.

Remou의 해결책과 같은 것이 Want VBA in excel to read very large CSV and create output file of a small subset of the CSV에 있습니다. 하지만 불행히도 나는 그것을 작동시킬 수 없다.

+0

Remou의 솔루션과 비슷한 것 http://stackoverflow.com/questions/427488/want-vba-in-excel-to-read-very-large-csv-and-create-output-file-of- a-small-subse? rq = 1은 제가 찾고있는 것입니다. 하지만 불행히도 나는 그것을 작동시킬 수 없다. – user2696565

+0

의견이 아닌 정보로 질문을 편집 할 수 있습니다. –

+0

질문에 대해 혼란 스럽습니다. SQL을 사용하여 EXENROWSET 또는 일부를 사용하여 Excel 파일의 데이터를 부분 집합으로 만들었습니다. 이제 CSV로 출력하는 방법을 알고 싶습니까? –

답변

0

Excel VBA에 있다고 가정하고 데이터베이스에 연결된 Recordset 개체로 ADODB를 열고 Excel VBA 내에서 CSV에 콘텐츠를 저장하려고합니다.

가장 쉬운 방법은 실제로 레코드 세트의 레코드를 반복하는 것입니다.

그러나, 당신은 이미 그 가능성을 배제하기 때문에 (어떤 이유로), 다음 옵션은 Recordset.Save <StreamObject> 방법을 사용하는 것입니다. 에 전달할 System.IO.Streamwriter 개체를 만듭니다.

또는, 당신은 제트 SQL을 사용하는 경우 다른 방법은 다음과 같습니다

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

희망이 도움이됩니다.

+0

필자는 "SELECT blah INTO Output.csv from ExcelSheet ..."와 같은 작업을 할 수 있다고 가정하고 레코드를 루핑하는 것을 배제했습니다. 그래서 하나의 문장으로 선택하고 저장할 수 있습니다. 그러나 당신이 말했듯이, 나는 단지 반복해야 할 수도 있습니다. 어쨌든 당신의 도움에 감사드립니다. – user2696565

관련 문제