Excel 워크시트의 데이터를 MS Access 테이블로 내보낼 때 일반적인 접근 방식에는 루프를 사용하는 것이 포함됩니다. 각 데이터 행을 테이블에 반복적으로 삽입합니다. 그러나 이 방법은 대규모 데이터세트에는 비효율적일 수 있습니다. 다음은 성능을 크게 향상시키는 단일 SQL INSERT 문을 사용하는 대체 방법입니다.
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 ' Construct SQL INSERT statement to bulk insert data ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh ' Execute SQL INSERT statement to insert data in one go cn.Execute ssql End Sub
이 코드에서:
특정 필드의 경우 이름을 사용하려면 INSERT 절에 특정 필드 이름을 포함하도록 ssql 문을 수정할 수 있습니다.
ssql = "INSERT INTO fdFolio (fdName, fdOne, fdTwo) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
위 내용은 루프를 사용하지 않고 Excel 데이터를 MS Access로 효율적으로 내보낼 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!