Bonjour,
Je travaille sur un fichier Excel qui enregistre des informations dans une base de données Access. J'avais tout d'abord développé mes macros en utilisant DAO, puis j'ai essayé de passer à ADO. J'ai essayé toutes les combinaisons d'options possibles (je crois), et le temps d'execution est toujours supérieur avec ADO, à ma grande surprise. Il me reste à essayer la mise à jour en batch, mais je reçois le message d'erreur: "le nombre de lignes contenant des modifications en attente est supérieur à la limite autorisée". Ce qui est embêtant, car je reçois le message dès le deuxième AddNew... J'ai parcouru les différents sites traitant de ces questions et je n'ai trouvé aucune référence à ce problème potentiel... Savez-vous comment y remédier?
J'ouvre la base de la manière suivante:
Les recordsets sont créés avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3cn.Provider = "Microsoft.Jet.Oledb.4.0" cn.ConnectionString = sFileCopy cn.Open
Puis j'ajoute les informations dans les recorsets:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Call r.Open(sTable, cn, adOpenForwardOnly, adLockBatchOptimistic, adCmdTable)
et pour finir:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 r.AddNew Array1,Array2 r.AddNew Array1,Array3 ...
Je reçois le message d'erreur dès le deuxième AddNew.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 r.UpdateBatch
Si en plus vous savez m'expliquer pourquoi ma manière de procéder est plus lente qu'en DAO, je suis très intéressé!
Merci,
Yoann
Partager