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 ?
À 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!