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

Access Discussion :

Message d'avertissement : Conflit d'écriture


Sujet :

Access

  1. #1
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut Message d'avertissement : Conflit d'écriture
    Bonjour, je suis en train de développez une application et je suis devant un problème depuis hier.

    J'ai ce message qui apparait lorsqu je veux fermer mon fomulaire :



    Peut importe sur quel bouton que je clic mon enregistrement se passe bien, c'es à dire que mes données s'enregistrent sans soucis.

    Qu'est-ce qui peut générer ce message ???


    PS : Mon formulaire contient énormément de code VBA dans lequel je vais des appel de fonction, j'utilise des recordsets ...

    Est-ce que le problème peut venir d'un recordset qui est toujours en cours d'utilisation ???

    Si vous avez des idées, je prends volontier ...

    Merci de vos réponse et à tout bientôt ...


    Merci de vos réponse et à tout bientôt ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  2. #2
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    bonjour snoopy,
    j'ai déjà eu ce problème une fois.
    En fait 2 fois, une fois lorsque je travaillais seul sur la base, et une autre fois mais lorsque plusieurs utilisateurs étaient connectés. Donc bon, je vais tenter de t'aider en te parlant de mon premier cas puisqu'apparement tu travailles tout seul sur la base.

    Pour régler le problème, même si ça va être long (puisque ton code est long) il faut que tu fasses un debug ligne par ligne (avec F8), tu te mets au tout début de ton code et tu vas donc devoir trouver quelle ligne produit l'erreur.
    Inutile de garder le suspense plus longtemps, il s'agit d'une ligne recordset.update !!

    En fait ce qui se passe, c'est que tu as ouvert un recordset, tu as fait recordset1.edit pour le modifier, .... , puis plus loin dans ton code (peut etre dans un appel de fonctions) tu as fait appel à un autre recordset portant sur une (ou plusieurs) même table que le recordset1, ensuite tu as recordset2.edit ,...., recordset2.update ....... et plus loin dans ton code (là où tu auras le message d'erreur) recordset1.update !

    en esperant t'avoir aidé !
    courage...

  3. #3
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Oki ... je vais voir cela ligne par ligne .... mais lorsque j'ai déjà fait cela j'ai trouvé une erreur sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fn_QuitterFormulaire str_NomFormulaire
    Cette fonction contient une seule ligne qui me permet de fermer mon formulaire ...

    Mais je vais contrôler encore une fois tout mon code pour voir si, comme tu me l'as dit, j'ai fait une erreur sur un : rst_xxx.UPDATE ...

    Merci de ton aide ...

    Dès que j'ai fini, je vous redonne des nouvelles ...

    Merci ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  4. #4
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Citation Envoyé par Thepince
    En fait ce qui se passe, c'est que tu as ouvert un recordset, tu as fait recordset1.edit pour le modifier, .... , puis plus loin dans ton code (peut etre dans un appel de fonctions) tu as fait appel à un autre recordset portant sur une (ou plusieurs) même table que le recordset1, ensuite tu as recordset2.edit ,...., recordset2.update ....... et plus loin dans ton code (là où tu auras le message d'erreur) recordset1.update !
    Alors, je viens de parcourir mon code, et RIEN, pas d'erreur comme tu me l'as dit ci-dessus ...

    Ensuite j'ai parcourus toute mes fonctions qui sont appelé lorsque je ferme mon formulaire et j'ai aussi recherché une erreur comme tu me l'as dit et : RIEN ...

    Donc ouais je ne sais pas trop où cette erreur peut se situer ...

    J'ai pris aussi le temps de vérifier que je faisais bien des :

    rst_xxx.close et Set rst_xxx = nothing partout où j'utilise des recordsets une fois que j'avais fini des les utiliser ...

    En résumé, je ne sais pas quoi faire .... mis à part déprimer ...

    Si vous avez des idées ... je prends !!! ...

    PS :

    J'ai trouvé ceci dans la FAQ : http://access.developpez.com/faq/?pa...onflitEcriture
    mais cela ne m'est pas d'une grande aide car lorsque je ferme mon formulaire je demande à l'utilisateur si il veut enregistrer les données et si il répond non, je devrai tout supprimer ce qui est automatiquement enregistré avec Access ... donc ouais ... je sais pas trop comment faire ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    Arf...
    effectivement si tous les recordsets sont fermés ça ne devrait pas poser de problème à la fermeture.

    Pour en revenir à mes 2 cas, pour mon cas en réseau, c'est à la fermeture du formulaire que l'erreur se produit, mais ça c'est parce qu'Access doit faire un enregistrement des données au moment de la fermeture, donc si 2 utilisateurs touchent les mêmes données l'erreur devient presque "logique"

    En revanche dans ton cas, je ne peux plus t'aider à part te souhaiter bon courage...et de nous tenir au courant si tu trouves quelque chose...
    désolé

  6. #6
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Citation Envoyé par Thepince
    Arf...

    Pour en revenir à mes 2 cas, pour mon cas en réseau, c'est à la fermeture du formulaire que l'erreur se produit, mais ça c'est parce qu'Access doit faire un enregistrement des données au moment de la fermeture, donc si 2 utilisateurs touchent les mêmes données l'erreur devient presque "logique"
    Juste une question, comment as-tu corriger ton problème pour le cas N°2 que tu viens de citer ???

    Tu as règler le problème de la même façon que ton cas N°1 ???

    Merci de ta réponses ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    Ok, alors pour le cas 2 c'est un peu plus compliqué puisque l'application en réseau concerne plus d'une dizaine d'utilisateurs qui ont des postes (en entreprise) differents, et donc qui utilisent les données differement, cependant la solution que j'ai trouvé est toute simple !

    Déjà chaque utilisateur a son client. Tous les clients sont reliés à la base (unique) évidemment. Donc ouvrir le même formulaire en même temps ne posent aucun problème, cependant la modification de l'enregiostrement en simultanée pose dans certains cas des problèmes de conflit d'écriture...qui créés de gros problèmes dans la base.

    Donc j'ai juste ajouté un attribut dans ma table qui précise le statut de l'enregistrement.
    Voici un exemple : Certains employés font une demande pour demander qu'un certain travail soit fait. L'enregistrement est donc en création pendant ce temps.Une fois terminé je fais passé l'enregistrement en attente.

    D'autres employés doivent choisir qui va réaliser l'action, donc ils ne se servent que des enregistrements en attente, choisissent les personnes qu'ils souhaitent, et ensuite je passe l'enregistrement en cours.

    Enfin, d'autres clotures l'action, donc je passe l'enregistrement en cloturé.

    Ceci s'adapte bien dans mon cas car les domaines métiers ne se supperposent pas, et chaque groupe travaille a des niveaux differents. Cela fonctionne aussi dans un groupe de travail 2 personnes ne font jamais la même chose, c'est à dire ne travaille jamais sur le meme enregistrement.

    Personnellement j'aurai préféré travaillé avec un serveur de donné digne de ce nom (oracle, sql serveur,...) plutot qu'avec access mais bon, faut s'adapter aux moyens que l'on a, même si les solutions ne sont pas toujours très jolies.

    En espérant que ma solution pourra servir à certains...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conflit d'écriture
    Par Manu0086 dans le forum Access
    Réponses: 23
    Dernier message: 05/02/2021, 12h24
  2. Suppression du message de conflit d'écriture
    Par Aegnor dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/07/2011, 08h41
  3. [AC-2003] aide sur le Message d'erreur "Conflit d'écriture"
    Par sassene dans le forum IHM
    Réponses: 1
    Dernier message: 09/07/2010, 16h30
  4. Réponses: 4
    Dernier message: 17/07/2009, 15h02
  5. [Kylix] Message d'avertissement GPL Kylix OE
    Par fred78 dans le forum EDI
    Réponses: 5
    Dernier message: 30/11/2002, 13h12

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