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
このコード内:
特定の名前を持つフィールドの場合、 ssql ステートメントを変更して、INSERT 句に特定のフィールド名を含めることができます:
ssql = "INSERT INTO fdFolio (fdName, fdOne, fdTwo) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
以上がループを使用せずに Excel データを MS Access に効率的にエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。