Maison >base de données >tutoriel mysql >Comment Excel VBA peut-il insérer des données en masse dans MS Access pour une exportation plus rapide des données ?

Comment Excel VBA peut-il insérer des données en masse dans MS Access pour une exportation plus rapide des données ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 06:25:43639parcourir

How Can Excel VBA Bulk Insert Data into MS Access for Faster Data Export?

Utiliser Excel VBA pour exporter des données vers une table MS Access rapidement et efficacement

À l'origine, votre code exploitait des boucles pour exporter des données d'une feuille de calcul Excel vers une table MS Access. Bien que cette approche soit viable pour des ensembles de données relativement petits, elle devient moins efficace lors du traitement de grandes quantités de données.

Pour surmonter cette limitation, vous avez recherché une méthode alternative évitant le traitement itératif. Lors de l'exploration, vous êtes tombé sur une solution qui utilise une seule instruction SQL INSERT pour insérer des données en bloc dans la table 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

Cette approche a considérablement amélioré le temps d'exportation, comme en témoigne votre observation selon laquelle 27 648 enregistrements ont été insérés. dans la table Access en seulement 3 secondes.

Bien que vous ayez rencontré des difficultés pour spécifier des noms de champs spécifiques au lieu de vous fier à « SELECT * », vous continuez à explorer différentes méthodes pour obtenir le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn