알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

[VBA]CVS SQL로 연결 본문

VBA

[VBA]CVS SQL로 연결

백곳 2017. 8. 4. 13:32

CVS SQL로 연결 


가끔 VBA로 메크로를 만들다 보면 자동화 설비에서 로그 파일을 CSV로 저장할때가 있습니다. 


그럴때 VBA 에서 CSV 데이터를 처리할때 SQL로 하면 정말 편하겠다 해서 학습후에 적어 봅니다. 




라이브러리 추가


도구 -> 참조 


다음과 같이 라이브러리를 추가해 줍니다.


라이브러리를 추가 해야 CSV를 SQL 쿼리를 사용하여 데이터를 사용할수 있습니다. 


CSV 내용 


파일 경로 : D:\CSV

파일 이름 : testdata.csv 


라는 조건으로 시작 하게 됩니다. 



에디터로 본내용 


Cassette,SLOT,RESULT TYPE,MEAN,MIN,MAX

,,,,,

Right,11,TEST1,10916.167,10902.4463,10929.9102

Right,11,TEST2,0.9762,0.9759,0.9764

Right,12,TEST3,10974.3008,10957.5713,10989.4609

Right,12,TEST4,0.9769,0.9766,0.9771

Right,13,TEST5,11032.5645,11009.8828,11055.9395

Right,13,TEST6,0.977,0.9766,0.9772

Right,14,TEST7,11050.4482,11021.4424,11068.3975

Right,14,TEST8,0.9772,0.9766,0.9774

Right,15,TEST9,11137.4893,11127.1348,11150.1846

Right,15,TEST10,0.9779,0.9776,0.9781

Right,16,TEST11,10941.0293,10927.2646,10963.7012

Right,16,TEST12,0.9766,0.9762,0.9768

Right,17,TEST13,10972.959,10836.6396,11060.2666

Right,17,TEST14,0.9768,0.9761,0.9771

Right,18,TEST15,10876.9141,10851.9688,10909.7129

Right,18,TEST16,0.9761,0.9759,0.9763

Right,19,TEST17,10915.8203,10890.7803,10932.376

Right,19,TEST18,0.9764,0.9761,0.9766

Right,20,TEST19,10974.1514,10952.1025,10992.084

Right,20,TEST20,0.9768,0.9764,0.977

Right,21,TEST21,10999.1719,10982.6699,11028.5918

Right,21,TEST22,0.977,0.9765,0.9773


    
Sub Moudle()

    Dim 연결 As New ADODB.Connection
    Dim 레코드셋 As New ADODB.Recordset
    Dim OLEDB As String
    Dim 경로 As String
    Dim Table As String

    경로 = "D:\CSV\"

    Table = "testdata.csv"
    
    OLEDB = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & 경로 & ";" & _
            "Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
            
    연결.Open OLEDB

    xsql = "select * from [" & Table & "] "

    레코드셋.Open xsql, 연결, adOpenStatic, adLockReadOnly
    Count = 레코드셋.RecordCount
    
    레코드셋.MoveFirst
    For i = 1 To Count
        Debug.Print 레코드셋("MEAN").Value
        레코드셋.MoveNext
    Next i

End Sub

여기서 DB 는 폴더가 되고 table 은 csv 파일이 됩니다. 

또한 칼럼속성은 첫번째 Row가 됩니다.



다음과 같은 결과가 나오게 됩니다. 



'VBA' 카테고리의 다른 글

vba ScriptControl 429 error  (0) 2019.01.30
VBA Json 파싱  (0) 2018.12.21
excel을 DB 처럼 사용 하기  (0) 2017.08.07
VBA MSSQL 접속  (0) 2017.08.04
VBA 폴더내 파일 이름 조건 검색  (0) 2017.08.04
Comments