2014-07-11 3 views
2

CSV 파일을 열고 쿼리하여 "ThisWorkbook"의 두 번째 워크 시트 A 열로 결과를 반환하려고합니다. 나는 왜 레코드를 Excel로 복사하지 않는지 알 수 없으므로 오류가 발생하지 않습니다.ADO 레코드 집합을 Excel 워크 시트에 복사

Dim con As ADODB.Connection 
Dim rs As ADODB.Recordset 

Set con = New ADODB.Connection 
Set rs = New ADODB.Recordset 

Dim currentDataFilePath As String 
Dim currentDataFileName As String 

Dim nextRow As Integer 

currentDataFilePath = "C:\Users\M\folder\" 
currentDataFileName = "csv-file" 

con.Open "Provider=Microsoft.JET.OLEDB.4.0;" & _ 
      "Data Source=" & currentDataFilePath & ";" & _ 
      "Extended Properties=""text;HDR=NO;FMT=Delimited;IMEX=1""" 


'rs.ActiveConnection = con 

rs.Open "SELECT Name FROM [" & currentDataFileName & ".csv] WHERE Datatype ='TYPE3'", 
con 

ThisWorkbook.Worksheets("Sheet2").Range("A:A").CopyFromRecordset rs 
rs.Close 
con.Close 

Set rs = Nothing 
Set con = Nothing 


End Sub 
+0

확인 당신이 실제로하고 있는지 확인하기 위해 모든 레코드를 반환합니다. –

+0

괜찮 았는데 - 내 쿼리를 잘못 입력했다 : ( – user2888590

답변

0

CopyFromRecordset() 방법을 참조하십시오. 이 같은 것을 추가 할 것이다 rs.Open 명령 다음에 위의 코드를 기반으로

:

ActiveWorksheet.Range("A1").CopyFromRecordset rs 

여기에 대한 자세한 내용보기 : rs.EOF``에 대한 http://msdn.microsoft.com/en-us/library/office/ff839240%28v=office.15%29.aspx

+0

내 코드에서 ' ThisWorkbook.Worksheets ("Sheet2"). 범위 ("A : A"). CopyFromRecordset rs' – user2888590

+0

죄송합니다. 질문! 내 실수. 마지막 확장 속성 뒤에 세미콜론을 추가하십시오 : "확장 속성 =" "텍스트, HDR = 아니오, FMT = 구분, IMEX = 1" "" – user1515908

관련 문제