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 :

Verrouillage de la base pour un nouvel utilisateur si écran fermer via croix


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Verrouillage de la base pour un nouvel utilisateur si écran fermer via croix
    Bonjour,

    Le menu de mon application est construit par programmation selon le profil de l'utilisateur. De plus, selon la fenêtre "MDI" ouverte, j'active/désactive certains items de ce menu.

    Si l'utilisateur ferme la fenêtre MDI via le bouton "Sortie" donc le code DoCmd.close acForm, form_name => OK

    Si l'utilisateur sort de la fenêtre MDI avec la croix Windows =>KO: aucun autre nouvel utilisateur ne peut se connecter: il reçoit le msg d'erreur suivant: <<La base de données a été placée par l'utilisateur "Admin" sur "nom_pc" dans un état l'empêchant d'être ouverte ou verrouillée ">> - Erreur 3734. En revanche, cela n'a aucun impact pour les utilisateurs déjà connectés.

    J'ai essayé de déplacer le code de mise à jour du menu dans les différents évenements d'ouverture/fermeture des écrans concernés. Rien à faire, la différence de comportement persiste.

    Quelle différence existe-il entre la fermeture via l'instruction Docmd.Close et la fermeture via le bouton système de Windows "x"? Qu'est-ce qui peut provoquer cette erreur?

    PS: l'architecture m'est imposée: tous les utilisateurs pointent sur la même frontale .... sinon, le problème ne serait pas apparu

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu as 2 solutions qui peuvent pallier au problème :
    1/ Suppimer la croix X de la fenêtre MDI (dans les propriétés)
    2/ Empêcher l'événement Unload() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Option Compare Database
    Option Explicit
     
    Private m_p_CloseForm As Boolean
     
    Public Property Get p_CloseForm() As Boolean
      p_CloseForm = m_p_CloseForm
    End Property
     
    Public Property Let p_CloseForm(ByVal p_CloseForm As Boolean)
      m_p_CloseForm = p_CloseForm
    End Property
     
    Private Sub cmdClose_Click()
      p_CloseForm = True
      DoCmd.Close acForm, Me.Name
    End Sub
     
    Private Sub Form_Load()
      p_CloseForm = False
    End Sub
     
    Private Sub Form_Unload(Cancel As Integer)
      If Not p_CloseForm Then
        MsgBox "Merci d'utiliser le bouton Sortie !", vbExclamation, "Fermer"
        Cancel = True
      End If
    End Sub
    Il n'existe pas de différence notoire entre les deux mode choisis, tous deux faisant appel à l'action Fermer, qu'elle soit choisie dans le menu Fichier ou Système.

    Au passage, je te préconiserais volontier de t'installer ce petit programme de mon cru qui te permettra de visualiser les utilisateurs connectés.
    Tu auras peut-être une piste autre que celle qui est évoquée, sait-on jamais...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci pour la réponse, mais entre-temps j'ai continué à fouiller et j'ai pu constater que le problème vient plutôt de la gestion des menus par Access.

    Je me suis créée une petite base avec juste un formulaire, un menu et deux boutons qui simule la modification des items du menu ( enabled = True ou False) et j'ai simulé l'utilisation multi-utilisateur avec 2 PC en réseau.

    Dans un 1er temps, le second "utilisateur" n'arrivait même pas à ouvrir la base! C'est ajoutant un timer sur l'évènement Load du formulaire que j'ai réussi à à avoir 2 utilisateurs connectés !!!

    Et le phénomène de verrouillage s'est reproduit dès que je cliquais sur l'un des 2 boutons ( modification des propriétés des itmes du menu). Le verrouillage n'est pas lié à la fermeture de l'écran par la croix mais visiblement la fermeture d'un écran par la commande DoCmd.Close rétablit la situation.

    J'ai trouvé une solution de contournement: à chaque ouverture/fermeture de fenêtre MDI, je delete les items et je reconstruis le menu !!!!

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

Discussions similaires

  1. Privileges pour un nouvel utilisateur
    Par johnson95 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2010, 10h51
  2. probleme d'authentification pour un nouvel utilisateur dynamicvs crm 4.0
    Par saspi dans le forum Microsoft Dynamics CRM
    Réponses: 20
    Dernier message: 09/08/2010, 22h41
  3. Réponses: 3
    Dernier message: 03/05/2007, 15h32
  4. problème pour creer un nouvel utilisateur
    Par julien.63 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 26/03/2007, 15h35
  5. verrouillage des données / base Multi utilisateurs
    Par DI DODO dans le forum Access
    Réponses: 1
    Dernier message: 27/03/2006, 15h34

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