none
Enregistrement verrouillé sur usage concurrent RRS feed

  • Question

  • Bonjour,

    J'ai développé une base dans laquelle, sur un formulaire (directement associé à une table, sans requête intermédiaire), dans lequel j'ai des cases à cocher sur chaque enregistrement.
    Il s'agit en fait d'une base frontale, installée sur différents postes utilisateurs, accédant tous à la même base centrale (à laquelle appartient la table associée au formulaire)
    Lorsque l'utilisateur coche une case, son identifiant est mémorisé dans un champ de l'enregistrement courant (par un petit bout de code VB associé à l'événement "avant modification" de la case à cocher)

    Mon problème est que, en usage concurrent (même avec seulement deux utilisateurs), j'ai fréquemment des messages comme quoi l'enregistrement est verrouillé, et dès lors, le seul moyen de reprendre la main est d'arrêter la base frontale, et de la redémarrer.

    Je comprend d'autant moins que le verrouillage au niveau du formulaire est désactivé.

    Quelqu'un aurait il déjà rencontré, et résolu ce genre de problème?

    Petite précision, cela se produit que l'on soit uniquement en access 2003, ou en usage mixte 2003 et 2007

    D'avance merci
    jeudi 14 juin 2012 19:08

Toutes les réponses

  • Bonjour,

    L'événement BeforeUpdate ne stockent pas l'information et donc tant que l'enregistrement est dans cette situation, l'utilisateur a en quelque sorte l'exclusivité.

    Il faut revoir votre méthode stockage de l'identifiant... Sinon, dans l'idéal, si cela vous paraît délicat à mettre en oeuvre, le mieux est de faire en sorte que votre formulaire soit détaché de la table et rendu indépendant.

    Cela offre deux avantages :

    1. pas de conflit
    2. possibilité d'annuler n'importe quand.

    Ce n'est que lors de l'appel de la méthode Execute de votre objet Database avec l'argument dbConsitent que vous pourrez contrôler la situation en cas de doublon...


    Argy

    mardi 19 juin 2012 14:32
    Modérateur