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 :

Empêcher l'ouverture d'un formulaire


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 170
    Points : 74
    Points
    74
    Par défaut Empêcher l'ouverture d'un formulaire
    bonjour
    j ai une base de donnée Access sous réseaux partager par 5 poste
    est 'il possible d'empêcher l'ouverture d'un formulaire (ou verrouiller) déjà ouvert dans un autre poste
    merci d avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Donc si j'ai bien compris, tu as UNE BASE utilisée par 5 personnes différentes ?
    Pourquoi tu ne scindes pas ton application en Dorsale(contient les tables et les données) et Frontale (qui contient les requêtes, formulaires et autres objets) ? Ainsi, tu laisse la dorsale sur le réseau et tu mets 1 frontale par Poste. Ainsi, tu n'aurais pas de souci pour vérifier si un formulaire est ouvert par quelqu'un d'autre.

    Sinon, la propriété IsLoadedpermet de vérifier si un formulaire est chargé dans l'application.

    Cordialement,

  3. #3
    Modérateur

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentProjet.AllForms("TonForm).IsLoaded
    ne marchera pas car même si ta BD est partagée, chaque copie s'exécute dans la mémoire de chaque PC. Seules les tables sont partagées.

    La seule méthode que je vois c'est à l'ouverture du formulaire de mettre un "drapeau" dans une table qui signale que le formulaire est ouvert.
    À la fermeture du formulaire, tu enlèves le drapeau.

    Attention, il faut que l'assignation du drapeau se fasse en exclusion mutuelle. C-à-d qu'une et une seule personne puisse le faire à la fois. Si tu veux des détails sur comment faire, demandes.

    Et il faut qu'un super-utilisateur puisse allez enlever le drapeau à la main car si ton application plante entre l'ouverture et la fermeture, le drapeau va resté là et personne ne pourra plus entrer.
    Une alternative est d'associer l'utilisateur au drapeau. Si le même utilisateur demande le formulaire "verrouillé", on le laisse entrer quand même.

    Une dernière possibilité, si ton formulaire n'utilise qu'une seule table et que les autres utilisateurs n'ont pas à la modifier en même temps c'est que le formulaire verrouille pour son usage exclusif la table. Tant que le formulaire est ouvert (et l'application fonctionnelle) les données ne sont manipulable que par ce formulaire. Plus besoin de drapeau, Access s'occupe de tout.

    A+

Discussions similaires

  1. Empêcher l'ouverture d'un formulaire vide
    Par MuadDib_II dans le forum IHM
    Réponses: 6
    Dernier message: 01/08/2008, 09h01
  2. Réponses: 6
    Dernier message: 08/02/2007, 17h06
  3. Réponses: 9
    Dernier message: 07/10/2004, 19h41
  4. Comment empêcher l'ouverture d'un TPopupMenu !?
    Par Lung dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2003, 11h47
  5. lecture de son à l'ouverture d'un formulaire
    Par cynferdd dans le forum IHM
    Réponses: 4
    Dernier message: 16/06/2003, 15h31

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