ホームページ > データベース > mysql チュートリアル > SQL を使用して大規模なデータセットを Excel から Access に効率的に転送するにはどうすればよいですか?

SQL を使用して大規模なデータセットを Excel から Access に効率的に転送するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-05 07:22:44
オリジナル
149 人が閲覧しました

How Can I Efficiently Transfer Large Datasets from Excel to Access Using SQL?

SQL Insert ステートメントを使用して Excel から Access にデータを効率的に転送する

Excel VBA コードでは、次の各行を手動でループしていました。データを使用して、Access テーブルに値を挿入します。このアプローチは小規模なデータセットには機能しますが、25,000 レコードのような大規模なデータセットでは非効率的になります。

代わりに、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
ログイン後にコピー

11 行目に示されている SQL INSERT ステートメントを使用することにより、Excel 範囲のすべての行が一度に Access テーブルに挿入されます。これにより、ループの必要性がなくなり、パフォーマンスが大幅に向上します。

「SELECT *」を使用する代わりにフィールド名を指定したいと述べましたが、提供されたコードはそれを示していません。特定のフィールド名の設定についてサポートが必要な場合は、希望のフィールド名を入力してください。それに応じてコードを変更するお手伝いをいたします。

以上がSQL を使用して大規模なデータセットを Excel から Access に効率的に転送するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート