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

Sécurité Discussion :

Multi-utilisateurs verrouiller enregistrement


Sujet :

Sécurité

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Multi-utilisateurs verrouiller enregistrement
    Bonjour,

    J'ai une base de donnée qui contient juste 1 table soit la table client.

    J'ai un formulaire avec un listview qui contient la liste des clients.

    Lorsque je double clic sur un client le formulaire du client apparait avec les infos du client.

    J'ai besoin de placer cette base en réseau en mode multi utilisateur.
    J'aimerais que lorsque un utilisateur ouvre un enregistrement pour faire des modificiation qu'il soit impossible aux autres utilisateurs d'ouvrir le formulaire du client et que dans mon listview je puisse voir qu'il est déja ouvert par un utilisateur soit par le nom de l'utilisateur qui travaille dessus.

    Est-possible ?

    Je fonctionne sous access 2003 et possibilité de changer pour 2007

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 548
    Points
    24 548
    Par défaut
    Bonjour,

    2 méthodes : Soit on programme tout pour avoir plus de liberté de manoeuvre.

    D'abord créer une table contenant le nom de la table, le n° d'enregistrement et le nom de l'utilisateur.

    Sur l'événement Sur Modification créer un enregistrement dans cette table.
    Sur l'événement Sur Activation vérifier que l'enregistrement courant ne figure pas dans la table.

    En gros ça fonctionne comme ça.

    Soit on utilise un réglage du moteur ACCESS mais appliquée à toute l'application.

    Il faut régler le fonctionnement de Jet (le moteur de base de données d'ACCESS) en mode Pessimiste (F1 pour sa mise en place)

    Dans ce mode l'enregistrement sera verrouiller et il indiquera qui est en modification.

    Cordialement,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Verouiller
    Bonjour,

    Merci de votre réponse, je ne comprends pas très bien la manière de faire malgré vos explications. Auriez-vous un exemple ou pouvez-vous me donner plus d'information détaillé ?

    Merci beaucoup

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 32
    Points : 19
    Points
    19
    Par défaut Besoin d'un coup de pouce svp
    Bonjour,

    solution numéro 1 j'ai créer la table avec le n° d'enregistrement et le nom de l'utilisateur mais je n'arrive pas à comprendre le principe. Svp aidez moi si vous avez un exemple ce serait très apprécié.

    Merci

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 548
    Points
    24 548
    Par défaut
    Désolé par d'exemple pour ça.

    Avant chaque consultation d'un enregistrement (événement sur activation) on regarde si il est locké.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if not isnull(dlookup("champEnregistrement","TableLock","process like """ & me.name & """ and champutilisateur like """ & UserCourant & """)) then
       msgbox "cet enregistrement est locké"
       docmd.CancelEvent
    endif
    ou usercourant est une variable contenant le nom de l'utilisateur.
    et ou le process est identifié par le nom du formulaire (me.name)

    Ceci est un exemple à affiner mais l'idée est là.

    Ne pas oublier de délocker l'enregistrement toujours sur le même événement.

    Cordialement,

Discussions similaires

  1. [Généralités] Base multi utilisateurs, accès exclusif à un enregistrement
    Par SomeoneElseIsHere dans le forum WinDev
    Réponses: 22
    Dernier message: 08/02/2012, 10h25
  2. Réponses: 1
    Dernier message: 07/11/2010, 17h12
  3. Multi utilisateur test enregistrement
    Par jma-consult dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/02/2008, 21h18
  4. Verrouillage d'enregistrement multi utilisateur
    Par bazilus dans le forum Access
    Réponses: 1
    Dernier message: 01/02/2007, 11h58
  5. Procédure stockée et multi utilisateurs
    Par Bruno34 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/04/2003, 15h32

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