ホームページ >データベース >mysql チュートリアル >VBA を使用して大規模な Excel データセットを MS Access にインポートするパフォーマンスを向上するにはどうすればよいですか?

VBA を使用して大規模な Excel データセットを MS Access にインポートするパフォーマンスを向上するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 17:58:38517ブラウズ

How Can I Improve the Performance of Importing Large Excel Datasets into MS Access Using VBA?

Excel VBA を使用した MS Access へのデータのインポート: パフォーマンスの向上

Excel から MS Access テーブルにデータをエクスポートすると、パフォーマンスが低下する可能性があります大量のレコードを扱うときに問題が発生します。ただし、プロセスを最適化する方法はあります。

提供された VBA コードは各行をループして Access テーブルにデータを挿入します。これは反復的なプロセスであり、大規模なデータセットでは時間がかかる可能性があります。パフォーマンスを向上させるには、一括挿入に単一の SQL INSERT ステートメントを使用することを検討してください。

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

  ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) "
  ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh

  cn.Execute ssql

End Sub

実装:

  • 上記のコードは、次を使用して Access データベースへの接続を確立します。 ADODB.Connection.
  • 指定されたフィールド名で fdFolio テーブルにデータを挿入する SQL INSERT ステートメントを形成します。
  • Execute メソッドは SQL ステートメントを実行し、一括挿入操作を実行します。

この最適化されたコードにより、各行をループする必要がなくなり、大規模なデータセットのパフォーマンスが大幅に向上します。

以上がVBA を使用して大規模な Excel データセットを MS Access にインポートするパフォーマンスを向上するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。