엑셀 VBA를 이용하여 text 파일을 엑세스로 불러들이는 방법

엑셀 VBA를 이용하여 text 파일을 엑세스로 불러들이는 방법

작성일 2006.09.26댓글 1건
    게시물 수정 , 삭제는 로그인 필요

엑셀의 VBA를 이용하여 코마(,)로 구분된 텍스트 파일을 엑세스 테이블로 불러 들이고 싶습니다.

 

단 엑세스 파일은 이미 존재하고 있구요. 새로운 테이블 이름을 이용하여 새로 테이블을 생성하여 그곳으로 텍스트 파일 내용을 불러오고 싶습니다. 또한 특정 필드를 text로 format하고 싶은데 SCHEMA.INI 파일을 사용하려고 합니다.

 

어떻게 해야 하나요? 부탁드립니다...


 



profile_image 익명 작성일 -

님께서 원하신 소스입니다.

 

Private Sub Command3_Click()
    Dim conn As New ADODB.Connection
    Dim SQL As String
       
    Command3.Enabled = False
   
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & App.Path & "\DB파일 이름.mdb"

    SQL = "insert into 해당테이블이름 " _
        & "Select * FROM [Text;DATABASE=" & App.Path & ";HDR=No;FMT=Delimited].[" & "입수컴마구분자파일.Csv" & "]"
       
    conn.Execute SQL

    MsgBox "OK"
    conn.Close
   
    Command3.Enabled = True
End Sub

 


단 해당 테이블의 필드와  입수컴마구분자파일.Csv 에 구분자로

구분된 필드 수가 같아야 합니다.

 

MDB에서 DB 및 테이블을 생성하셔도 됩니다.

 

만약 자동 생성을 원하시면 쪽지 주십시요.

 

그럼 즐프하세요.

 

님께서 원하신 DB생성 프로그램 입니다.

먼저 DAO를 사용하기 위해서는 구성요소의 참조에서

Microsoft DAO 3.6 Object Libry 를 체크해야 합니다.

 

그럼 소스는

Option Explicit
Private Wspace   As DAO.Workspace
Private DB       As DAO.Database
Private RS       As DAO.Recordset
Private DB_Path As String

Sub CreatDB(DB_FileName As String) ' db name
   Set DB = Wspace.CreateDatabase(DB_FileName, dbLangGeneral, dbEncrypt)
    ' Test1Tbl 테이블 이름
   With DB
     .Execute "CREATE TABLE Test1Tbl (Name TEXT (50), JuMinNo TEXT (15), TelNo TEXT (15), Years  SMALLINT)"
'     .Execute "CREATE TABLE Test2Tbl (FileName TEXT (50), TelNo TEXT (13), CallNo SMALLINT, CallTxt TEXT (40) )"  다른 테이블
     .Close
   End With
End Sub

Private Sub Form_Load()
    DB_Path = App.Path & "\Test.MDB"
    Set Wspace = DBEngine.Workspaces(0)
    If Dir(DB_Path) = "" Then       'DB파일 있는가 조사
         Call CreatDB(DB_Path)
    Else    'DB 내용삭제
        Set DB = OpenDatabase(DB_Path, False, False, ";pwd=")
        DB.Execute "Delete From Test1Tbl"  'Test1Tbl을 테이블명
'        DB.Execute "Delete From Test2Tbl"  '다른것
        DB.Close
    End If
End Sub

 

이것은 먼저 DB파일이 존재하는가를 검사하고 없으면 생성

있으면 내용을 삭제하는 것입니다.

이방법 말고도 또다른 것도았으나

이정도면 답이 되지 않나 생각합니다.

즐프하세요.

 

엑셀 VBA 질문드립니다 !

엑셀 VBA 관련 질문합니다 ! 현재 키워드 자동으로... 도통방법이 안나옵니다 ㅠ 아래 코드처럼 검색어 문자열을 & 를 이용해서 주소 뒤에...

파일의 셀 데이터를 불러들이는 방법??

... 엑셀파일의 sheet1에있는 A:1에 있는 값을 비주얼 베이직 TEXT1으로 불러들이는 방법을 알고 싶습니다.... 개체들을 이용할 수 잇도록 라이브러리 참조를...

엑셀 vba 에러 질문합니다.

엑셀 파일 module1에 보시면 Weld_Run 매크로... 혹시 문제점과 해결방법을 알려주실 수... 함수를 이용해서 오류처리를 해 주시고 실행...