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

IHM Discussion :

Détecter des modifications dans un formulaire indépendant


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Technicienne en géomatique
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicienne en géomatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 41
    Points
    41
    Par défaut Détecter des modifications dans un formulaire indépendant
    Bonjour à tous!

    Je sollicite votre aide afin de résoudre le problème suivant :

    J'ai construit des formulaires dont les contrôles sont indépendants.
    Pour enregistrer les données, l'utilisateur doit appuyer sur un bouton nommé "cmdEnregistrer", ce qui exécute des requêtes de mise à jour.

    J'aimerais que la couleur de fond de ce bouton change au rouge, dès qu'il y a une modification dans un des contrôles.
    Il revient ensuite vert dès qu'on appuie pour enregistrer.

    Je crois comprendre que si mon formulaire était dépendant, je devrais utiliser une private sub form_dirty.

    Mais que faire dans le cas d'un formulaire indépendant?

    Je m'en sort en dupliquant le même appel de fonction pour chaque contrôle (sur l'action AfterUpdate), mais y a-t-il moyen de ne le faire qu'une seule fois, pour l'ensemble du formulaire?

    --- Pseudo Code----
    Pour chacun des contrôles présents dans le formulaire (sauf bouton "cmdEnregistrer")
    Si détection d'une modification then
    me.cmdEnregistrer.BackColor = vbRed
    --------

    Merci de votre aide!

    Marie-Andrée

  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.

    form_dirty n'est pas vraiment fiable.
    Ta méthode est bien plus sure.

    Je ne sais pas comment tu as écrit to code mais pour limiter la répétition et faciliter la maintenance je te suggère ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub ChangerCouleurBouton()
      me.cmdEnregistrer.BackColor = vbRed
    end sub
    dans chaque AfterUpdate() de contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call ChangerCouleurBouton()
    comme cela si tu décides de faire quelque chose ne plus que de changer la couleur du bouton, il est facile de l'implanter à une seule place.

    Au fait as-tu pensé que si plusieurs personnes modifient le même enrgistrement, en procédant avec un formulaire déconnecté, tu n'auras aucune alerte.
    Si tu ne fais pas de vérifications avant ton enregistrement tu vas te retrouver dans la situation du "C'est le dernier qui a parlé qui a raison.".
    Ceci peut être acceptable, tout dépend de tes contraintes.

    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. Détecter la modification dans un formulaire.
    Par loufab dans le forum Contribuez
    Réponses: 11
    Dernier message: 04/11/2013, 21h18
  2. Réponses: 1
    Dernier message: 10/04/2012, 16h57
  3. Réponses: 3
    Dernier message: 21/03/2008, 16h29
  4. détecter des modifications dans une table Firebird
    Par DAGADA dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/05/2007, 10h05
  5. Réponses: 3
    Dernier message: 07/07/2006, 16h06

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