Utilisation de l'instruction d'insertion SQL pour transférer efficacement des données d'Excel vers Access
Dans votre code Excel VBA, vous parcouriez manuellement chaque ligne de données pour insérer des valeurs dans une table Access. Bien que cette approche fonctionne pour les petits ensembles de données, elle devient inefficace pour les grands ensembles de données comme 25 000 enregistrements.
Au lieu de cela, vous pouvez utiliser les instructions SQL INSERT pour insérer plusieurs lignes à la fois, réduisant ainsi considérablement le temps de traitement. Le code révisé suivant montre comment :
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
En utilisant l'instruction SQL INSERT affichée à la ligne 11, toutes les lignes de la plage Excel sont insérées dans la table Access en même temps. Cela élimine le besoin de boucle et améliore considérablement les performances.
Bien que vous ayez mentionné vouloir spécifier des noms de champs au lieu d'utiliser "SELECT *", le code fourni ne le démontre pas. Si vous avez besoin d'aide pour définir des noms de champs spécifiques, veuillez fournir les noms de champs souhaités et nous pouvons vous aider à modifier le code en conséquence.
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!