Maison > base de données > tutoriel mysql > Comment puis-je exporter efficacement des données Excel vers MS Access sans utiliser de boucles ?

Comment puis-je exporter efficacement des données Excel vers MS Access sans utiliser de boucles ?

Barbara Streisand
Libérer: 2025-01-05 18:47:43
original
134 Les gens l'ont consulté

How Can I Efficiently Export Excel Data to MS Access Without Using Loops?

Utiliser Excel VBA pour exporter des données vers une table MS Access sans boucle

Lors de l'exportation de données d'une feuille de calcul Excel vers une table MS Access, l'approche conventionnelle implique l'utilisation d'une boucle pour insérer de manière itérative chaque ligne de données dans le tableau. Cependant, cette méthode peut s’avérer inefficace pour les grands ensembles de données. Voici une méthode alternative utilisant une seule instruction SQL INSERT qui améliore considérablement les performances :

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
Copier après la connexion

Dans ce code :

  • La variable ssql construit une instruction SQL INSERT qui sélectionne toutes les données de la plage Excel dsh et l'insère dans la table fdFolio dans Access.
  • La ligne ssql cn.Execute s'exécute l'instruction SQL INSERT, insérant toutes les données en une seule fois, éliminant le besoin de boucle et accélérant considérablement le processus.

Remarque

Pour les champs avec des noms spécifiques, vous pouvez modifier le Instruction ssql pour inclure des noms de champs spécifiques dans la clause INSERT :

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

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal