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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
cn.Provider = "Microsoft.Jet.Oledb.4.0"
cn.ConnectionString = sFileCopy
cn.Open
Les recordsets sont créés avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Call r.Open(sTable, cn, adOpenForwardOnly, adLockBatchOptimistic, adCmdTable)
Puis j'ajoute les informations dans les recorsets:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
r.AddNew Array1,Array2
r.AddNew Array1,Array3
...
et pour finir:
Je reçois le message d'erreur dès le deuxième AddNew.

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