IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Message d'erreur avec la méthode UpdateBatch (ADO)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 19
    Points
    19
    Par défaut Message d'erreur avec la méthode UpdateBatch (ADO)
    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

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    La propriété CursorLocation du recordset doit être sur adUseClient. Est-ce le cas?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Merci pour cette précision, cela fonctionne maintenant. Par contre, la macro, qui mettait à peu près 2s sans le batch, tourne maintenant en 20s...

    Yoann




    Citation Envoyé par Pierre Fauconnier Voir le message
    Bonsoir

    La propriété CursorLocation du recordset doit être sur adUseClient. Est-ce le cas?

Discussions similaires

  1. les messages d'erreurs avec "yacc/bison"
    Par minirop dans le forum C
    Réponses: 6
    Dernier message: 20/12/2006, 19h17
  2. message d'erreur avec le Run Time Access 2003
    Par barbu44 dans le forum Runtime
    Réponses: 3
    Dernier message: 10/12/2006, 15h03
  3. message d'erreur avec borland c++
    Par sally042 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 06/12/2006, 16h41
  4. Erreur avec la méthode OpenRecordset
    Par NPortmann dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/05/2006, 18h13
  5. Message d'erreur avec Bulk Insert
    Par Shivas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 13h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo