Skip to content
조회 수 18239 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Excel VBA) DAO를 이용하여 엑셀문서 열지않고 데이타 가져오기



strSQL = "Select * FROM [장애관리.csv] where 출동업체 = '로케트밧데리' "


"Select * FROM [레코드명(csv파일명 적어줌)] where 필드명 = '추출할내용' "




Microsoft Visual Basic 코드입력창에서 [도구] -> [참조] 선택하면

참조 - VBAProject 창이 나타납니다.


Microsoft DAO 3.6 Object Library 항목 체크표시를 선택해야 합니다.


참고) 확장자가 CSV파일은 불러오지 못한다?



Sub CSVReadValue()

    Dim strSQL As String
    Dim dbMyDB As DAO.Database
    Dim rstRST As DAO.Recordset
    Dim lngStart As Long
    Dim i As Integer
    Const SourceFile = "Book3.csv" '불러들일 CSV명
    lngStart = Timer
    
    '칼럼별로 뽑아낼 수 있으나 변수를 몰라 일단 모든데이타(*) 데이타를 가져온다.
    strSQL = "Select 아우, 미초 FROM [Book3.csv]"
    strSQL = "Select * FROM [Book3.csv]"
    
   '텍스트 파일을 불러들일 OpenDatabase 사용방법
    Set dbMyDB = OpenDatabase(ThisWorkbook.Path, False, False, "Text;Database=" & ThisWorkbook.Path & ";table=" & "Book3.csv")
    
    
    Set rstRST = dbMyDB.OpenRecordset(strSQL, dbReadOnly)
    Application.ScreenUpdating = False
    
    'Worksheets.Add after:=Worksheets("Sheet2")
    
    With ActiveSheet
        .UsedRange.Clear
        For i = 0 To rstRST.Fields.Count - 1
            Cells(1, i + 1).Value = rstRST.Fields(i).Name
        Next
        
        .Range("A2").CopyFromRecordset rstRST
        .UsedRange.Columns.AutoFit
    End With
        
    Application.ScreenUpdating = True
    MsgBox "불과 " & Format(Timer - lngStart, "00:00:00") & "초 소요되었습니다!", , "www.iExcellr.com"
    
   rstRST.Close
   dbMyDB.Close
   Set rstRST = Nothing
   Set dbMyDB = Nothing

End Sub




Sub XLSReadValue()


    Dim strSQL As String

    Dim dbMyDB As DAO.Database

    Dim rstRST As DAO.Recordset

    Dim lngStart As Long

    Dim i As Integer

    Const SourceFile = "Book31.xls"

    lngStart = Timer

    

    strSQL = "Select 아우, 미초, 일처리 "

    'strSQL = strSQL & " RQD등급, BRMR, RMR, RMR등급, Q, Q등급, SMR, SMR등급, SCR, 추가1, 추가2, 추가3 "

    strSQL = strSQL & "FROM [Book3$] "

    

    Set dbMyDB = OpenDatabase(ThisWorkbook.Path & Application.PathSeparator & SourceFile, False, True, "excel 8.0;")

    Set rstRST = dbMyDB.OpenRecordset(strSQL)

    Application.ScreenUpdating = False

    

    'Worksheets.Add after:=Worksheets("Sheet2")

    

    With ActiveSheet

        .UsedRange.Clear

        For i = 0 To rstRST.Fields.Count - 1

            Cells(1, i + 1).Value = rstRST.Fields(i).Name

        Next

        

        .Range("A2").CopyFromRecordset rstRST

        .UsedRange.Columns.AutoFit

    End With

        

    Application.ScreenUpdating = True

    MsgBox "불과 " & Format(Timer - lngStart, "00:00:00") & "초 소요되었습니다!", , "www.iExcellr.com"

    

   rstRST.Close

   dbMyDB.Close

   Set rstRST = Nothing

   Set dbMyDB = Nothing


End Sub




로그인 후 댓글쓰기가 가능합니다.

?
  • ?
    정말궁금 2011.11.14 19:09

    DAO가 WIN7 에서도 지원되나요?

     

    안되는것 같습니다. 제PC에서는 아무리 해도.

     

  • ?
    ㅁㅁㅁ 2013.11.01 09:25

    이 쏘스코드 원작자가 누구에요?

  • ?
    디케 2013.11.07 09:46

    해외사이트에서 찾아서 코드 변경했어요.


http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소