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

VBA Access Discussion :

Conflit d'écriture et verrouillage par page


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Août 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 79
    Points : 59
    Points
    59
    Par défaut Conflit d'écriture et verrouillage par page
    Bonjour à tous,

    Comme le titre l'indique : problème de conflit d'écriture/verrouillage :
    j'ai une base access splitée en dorsale/frontale, et autant d'utilisateurs que de frontales.

    Le problème se situe dans le mode de verrouillage d'un formulaire dans lequel on navigue antre les enregistrements avec les boutons.
    J'ai mis le verrouillage en mode "enregistrement modifié", pensant que cela permettrait de contrôler que deux utilisateurs ne modifient pas en même temps un enregistrement > ça marche, mais je constate qu'en faisant ainsi, Access verrouille également toute une page d'enregistrements (14)
    et pas seulement celui qui est déjà en écriture.
    Je précise que le formulaire est basé sur une requête.

    Avez vous eu le cas?

    merci par avance...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Hélas, Access ment quand il dit qu'il bloque l'enregistrement.
    En interne, il verrouille un bloc de 2000 octets donc il peut bloquer plusieurs enregistrements d'un seul coup.
    Autant que je sache, il n'y a pas de contournement possible.
    La seule échappatoire est de supprimer la gestion du verrouillage ... ce qui n'est vraiment pas recommandé.
    Tu peux peut-être repenser ton mode de saisie ou ton organisation de saisie pour éviter que les utilisateurs "se marche sur les pieds."

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Inscrit en
    Août 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 79
    Points : 59
    Points
    59
    Par défaut
    Merci Marot_r

    C'est bien ce que je craignais... Il va donc falloir que je repense toute la circulation dans le soft.

    Je me demande comment j'ai pu échapper à ce bug depuis tout ce temps...

    Y a t'il un moyen de tester si un autre utilisateur est déjà entrain d'écrire sur un enregistrement? J'ai essayé avec la propriété dirty, mais cela ne répond pas. Comment savoir si un enregistrement est en écriture?

  4. #4
    Membre du Club
    Inscrit en
    Août 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 79
    Points : 59
    Points
    59
    Par défaut
    J'ai cherché dans le forum, mais je n'ai pas trouvé de tuto : comment gérez vous (globalement) les modifications des enregistrements en multi utilisateurs? Je ne vois même pas comment aborder le problème, les utilisateurs travaillant tous dans les mêmes tables!
    Il faudrait enlever le verrouillage, et tester si quelqu'un est déjà sur un enregistrement...

    Merci...

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je me demande comment j'ai pu échapper à ce bug depuis tout ce temps...
    La chance.

    Il faudrait enlever le verrouillage, et tester si quelqu'un est déjà sur un enregistrement...
    Tu peux essayer en changeant le type de verrouillage (c'est dans les options générales de l'appli et peut-être aussi plus localisé au niveau du form) et en implantant toi-même un mécanisme de sémaphore qui permet l'accès exclusif.

    Ici un article sur le sujet.
    Sémaphore (informatique)
    https://fr.wikipedia.org/wiki/S%C3%A...(informatique)
    Le sémaphore pourrait être un fichier texte commun ou une table que tu ouvres en accès exclusif le temps de manipuler le sémaphore.
    Dans l'ensemble le processus est bon mais il faut prévoir le cas où le propriétaire du sémaphore ne le rend pas (plantage de l'appli avant la fin du cycle).
    Le déclenchement du sémaphore pourrait être sur l'événement change du contrôle de saisie.
    Si il se déclenche c'est que l'utilisateur modifie l'enregistrement.

    Si tu ne fais rien c'est le principe du dernier qui a validé sa saisie a raison ... cela peut être jouable.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre du Club
    Inscrit en
    Août 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 79
    Points : 59
    Points
    59
    Par défaut
    Merci Marot_r

    La lecture de l'article sur le Sémaphore m'a effrayée dès son premier tiers
    mais je vais persévérer!

    Je tente pour le moment de supprimer le verrouillage du form, et de laisser la main au dernier qui a validé. J'avais des .recalc sur certains évènements de formulaires, qui généraient des erreurs majeures si deux utilisateurs étaient en même temps sur un même enregistrement. >>enregistrement totalement vérolé, avec des hiéroglyphes... En les remplaçant par de simples refresh ça passe mieux.

    Y a t'il un moyen, sur un formulaire continu, de savoir si quelqu'un modifie déjà l'enregistrement dans lequel vous entrez?

    je vais me replonger ans ton article...

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    La lecture de l'article sur le Sémaphore m'a effrayée dès son premier tiers
    Oui, moi aussi la première fois que je l'ai étudié.
    L'important est de disposer d'un enchaînement d'événements qui ne peut pas être interrompu entre le moment où tu requières le sémaphore et celui ou tu le manipules.
    D'où l'idée de la table en mode exclusive ou le fichier.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Membre du Club
    Inscrit en
    Août 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 79
    Points : 59
    Points
    59
    Par défaut
    Je vais regarder ça de plus près, certainement en mettant en place différents formulaires, saisie, modification, consultation, qui servent juste d'interface (sur table temporaire?) pour mette à jour la table, sans travailler directement dedans.

    et je vais aussi étudier le sémaphore et voir comment adapter ceci...
    Bref, je vais devoir revoir mon flux d'infos...

    merci!

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Avant de tout modifier, Est-ce que 2 personnes ou plus sont censées modifier le même enregistrement ?

    Si non, tu peux peut-être supprimer la gestion des verrous sur cet écran en particulier.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [AC-2002] Auto-verrouillage, conflit d'écriture
    Par Fabien Celaia dans le forum IHM
    Réponses: 0
    Dernier message: 18/11/2009, 17h21
  2. Réponses: 6
    Dernier message: 12/11/2007, 11h37
  3. Réponses: 12
    Dernier message: 29/12/2005, 11h41
  4. Réponses: 7
    Dernier message: 05/12/2003, 10h14
  5. XMLGram et nombre d'enregistrements par page
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 7
    Dernier message: 26/02/2003, 12h35

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