Access VBA로 CSV 가져오기
VBA는 개발자에게 다양한 기능과 기능을 제공합니다. 이 문서에서는 CSV를 Access VBA로 가져오는 방법을 안내합니다.
Access 데이터베이스에 CSV 파일을 연결하는 방법
다른 옵션을 사용할 수 있는데 VBA 코드를 사용하여 데이터를 가져오는 이유는 무엇입니까? VBA 코드를 통해 데이터를 가져오면 시각적 인터페이스를 사용하여 데이터를 가져올 때 사용할 수 없는 다양한 형식을 탐색하고 작업할 수 있습니다.
또한 보다 실용적인 수준에서 동일한 가져오기를 두 번 수행해야 하는 경우 VBA 코드를 사용하여 데이터를 가져오는 것이 작업을 수행하는 효율적이고 액세스하기 쉬우며 빠른 방법입니다.
매번 사용할 수 있는 기능을 생성하여 매번 가져오기 마법사를 거치는 것보다 빠르고 쉽게 처리할 수 있습니다.
CSV는 쉼표로 구분된 값
을 나타냅니다. 즉, 기본 가져오기 기능은 파일에서 쉼표를 찾습니다.
그러나 쉼표 이외의 것을 사용하는 경우 다음 단계를 시도하여 작동하도록 할 수 있습니다.
-
먼저 파일을 수동으로 가져옵니다.
-
설정을 지정했으면
마침
을 선택하기 직전에고급
을 선택하여 몇 가지 사항을 변경합니다. -
다른 이름으로 저장
을 선택하고 Access에서 제안한 이름을 선택하거나 직접 이름을 지정하십시오. -
선택한 이름을 기록해 두십시오. 예:
"데이터 가져오기 지정"
. -
확인
을 두 번 선택한 다음 가져오기를 취소합니다. -
이제 아래 코드로 생성한 가져오기 사양을 사용합니다.
DoCmd.TransferText acImportDelim, "Specification of Data Import", "T1", "D:\Data.csv", False
CSV를 Access VBA로 가져오는 가장 쉬운 방법 중 하나는 CSV 파일을 Access 데이터베이스에 테이블로 연결하는 것입니다. 그런 다음 다른 일반 Access 테이블과 마찬가지로 이러한 테이블에서 작업할 수 있습니다.
예를 들어 원하는 것을 반환하는 테이블을 기반으로 적절한 쿼리를 만들 수 있습니다.
테이블은 수동으로 연결하거나 다음과 같은 방식으로 VBA로 연결할 수 있습니다.
DoCmd.TransferText TransferType:=acLinkDelim, TableName:="tableToImport", _
FileName:="C:\MyData.csv", HasFieldNames:=true
그런 다음 다음 코드를 실행하여 CSV 테이블을 다시 연결하고 가져오기를 수행합니다.
Dim DB As DAO.Database
' Re-linking the CSV Table
Set DB = CurrentDb
On Error Resume Next: DB.TableDefs.Delete "tableToImport": On Error GoTo 0
DB.TableDefs.Refresh
DoCmd.TransferText TransferType:=acLinkDelim, TableName:="tableToImport", _
fileName:="C:\MyData.CSV", HasFieldNames:=True
DB.TableDefs.Refresh
' Now perform the import
DB.Execute "INSERT INTO anyTable SELECT c1, c2, ... FROM tableToImport " _
& "WHERE NOT F1 IN ('A1', 'A2', 'A3')"
DB.Close: Set DB = Nothing
처음부터 일부 행을 가져오고 끝에서 일부 행을 Access로 가져와야 하는 경우에도 수행할 수 있습니다. CSV 파일을 Access에 연결하면 다음을 사용하여 필요한 행을 가져올 수 있습니다.
INSERT INTO anyTable SELECT c1, c2, ... FROM tableToImport WHERE NOT F1 IN ('A1', 'A2', 'A3')
명령문에서 F1
열의 'A1'
, 'A2'
및 'A3'
값이 있는 행은 건너뛰고 최종 결과 집합에서 제외됩니다. 그러나 CSV 파일에 필드 이름이 있는 경우 HasFieldNames:=true
로 가져오면 이 이름이 열 이름으로 사용된다는 점에 유의해야 합니다.
그렇지 않으면 Access에서 'F1'
, 'F2'
, 'F3'
등의 열 이름을 자체적으로 할당합니다. 파일이 더 작은 경우 줄을 쉽게 읽고 빠르게 쓸 수 있습니다.
세미콜론으로 구분된 CSV 파일
CSV 파일이 세미콜론으로 구분된 경우 가져오기 사양
이 필요합니다. 이 특정 사양을 생성하려면 수동으로 데이터 가져오기를 한 번 시도해야 합니다.
이를 통해 사양을 저장하고 나중에 VBA 코드와 함께 사용할 수 있습니다. 이는 다음과 같은 방법으로 수행할 수 있습니다.
-
외부 데이터
>새 데이터 소스
>파일에서
>텍스트 파일
을 선택합니다. -
옵션을 탐색하고 테이블로 가져올 CSV 파일을 선택합니다.
-
그러면
텍스트 가져오기 마법사
대화 상자가 열립니다. -
그에 따라 가져오기 속성을 설정합니다. 그러나 아직 마법사를 닫지 마십시오.
-
왼쪽 하단의
고급
버튼을 클릭합니다. 사양 대화 상자가 열립니다. -
다른 이름으로 저장
을 클릭하고"SemiColonImportSpecification"
과 같이 적절하게 이름을 지정하고 최종 파일을 저장합니다. -
이제 여기서 해야 할 일은 사양 파일을 저장하는 것이므로 가져오기를 취소할 수 있습니다.
-
초기 VBA 코드로 돌아가서 다음과 같은 방법으로
specifications
라는 매개변수를 하나 더 포함합니다.DoCmd.TransferText _ TransferType:=acImportDelim, _ SpecificationName:="SemiColonImportSpec", _ TableName:="TEST", _ FileName:="C:\TEST.CSV", _ HasFieldNames:=True
텍스트 파일을 MS Access로 수동으로 내보내기
텍스트 파일을 MS Access로 수동으로 가져올 수도 있습니다. 이렇게 하면 텍스트 구분 기호와 셀 구분 기호를 선택할 수 있습니다.
이것이 작동하려면 메뉴에서 외부 데이터를 선택하고 사용할 파일을 선택한 다음 마법사를 단계별로 진행해야 합니다.
마법사를 통해 가져오기 작업을 수행하면 특정 가져오기 사양을 쉽게 저장하고 다음 DoCmd.TransferText
에 사용할 수 있습니다. 이렇게 하면 작은따옴표 텍스트 및 세미콜론과 같은 비표준 구분 기호를 사용할 수 있습니다.
결론
CSV를 Access VBA로 가져오는 것은 복잡할 수 있습니다. 그러나 올바른 기술을 알고 있다면 프로세스가 훨씬 더 간단해집니다. 이 문서에서는 이 작업을 올바르게 수행하는 방법에 대한 정확한 방법과 세부 정보를 설명합니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub