元々、コードはループを利用して 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 レコードが挿入されたことがわかります。
「SELECT」に頼らずに特定のフィールド名を指定する際に課題が発生しましたが、 *、「望ましい結果を達成するためにさまざまな方法を模索し続けます。
」以上がExcel VBA はデータを MS Access に一括挿入してデータをより速くエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。