원래 코드는 루프를 활용하여 Excel 워크시트의 데이터를 MS Access 테이블로 내보냈습니다. 이 접근 방식은 상대적으로 작은 데이터 세트에는 실행 가능하지만 대량의 데이터를 처리할 때는 효율성이 떨어집니다.
이러한 한계를 극복하기 위해 반복 처리를 피하는 대체 방법을 모색했습니다. 탐색 중에 단일 SQL INSERT 문을 사용하여 Access 테이블에 데이터를 대량 삽입하는 솔루션을 우연히 발견했습니다.
Public Sub DoTrans() Set cn = CreateObject("ADODB.Connection") dbPath = Application.ActiveWorkbook.Path & "\FDData.mdb" dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" cn.Open scn ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql End Sub
이 접근 방식을 사용하면 내보내기 시간이 크게 단축되었으며, 이는 27,648개의 레코드가 삽입된 것을 관찰한 결과 분명합니다. 단 3초 만에 Access 테이블에 액세스할 수 있습니다.
"SELECT *"에 의존하는 대신 특정 필드 이름을 지정하는 데 어려움을 겪는 동안 계속해서 원하는 결과를 얻기 위해 다양한 방법을 모색합니다.
위 내용은 더 빠른 데이터 내보내기를 위해 Excel VBA에서 MS Access에 데이터를 대량 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!