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
Dans ce code :
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
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!