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 :

Tester modification dans un sous formulaire de navigation


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Août 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2018
    Messages : 61
    Points : 38
    Points
    38
    Par défaut Tester modification dans un sous formulaire de navigation
    Bonjour,

    J'ai un formulaire avec 3 boutons de navigation. Quand je passe d'un bouton à l'autre je souhaite détecter une éventuelle saisie / modification pour demander confirmation à l'utilisateur.

    J'ai essayé de tester "dirty" sur plusieurs objets mais ça ne marche pas !

    Quel événement et sur quel objet faut-il tester ?

  2. #2
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,

    regardes cette discussion --> https://www.developpez.net/forums/d5...y/#post3376790

    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Août 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2018
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Merci pour le lien que je n'avais pas trouvé mais ...

    l'événement dirty ne se produit pas pour un formulaire indépendant (ce qui est le cas des miens ) ... autre astuce ?

    Sauvegarder les valeurs du form à l'open et les tester au close pour savoir si modif a eu lieu ? Plus simple ?

  4. #4
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Tu n'utilises pas le dirty mais l'évènement afterupdate() et en cas de modif tu mets à jour un controle du formulaire "parent".

    Par contre, si tu veux annuler les modifs du sous-form, ça sera "trop tard".
    Tu peux effectivement enregistrer les valeurs à l'ouverture dans des variables et agir en conséquence.

    A+

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Août 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2018
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Voila la solution que j'ai trouvée.

    Quand on change de page via un bouton de navigation, en ayant mis le focus sur l'un des champs du formulaire de saisie, on déclenche un event exit sur le sous-formulaire de navigation qui le contient. Je traite cet événement en comparant les valeurs sauvegardées à l'open du sous-formulaire de saisie lié au bouton (qui contient les champs et qui n'est pas le sous-formulaire de navigation évidemment), et celles contenues dans le formulaire de saisie au moment de cet event "exit" du sous formulaire de navigation.

    S'il y a une différence, je propose à l'utilisateur de sortir sans sauvegarde ou de rester (cancel du exit mis à true).

    Ca m'a semblé être de la grosse artillerie mais bon ... ça marche.

    (La difficulté aura été de trouver le chemin correct pour accéder au bon objet form à transmettre à la fonction de contrôle des différences qui doit fonctionner avec les 3 sous-formulaires de saisie.
    Un chemin qui descend via les formulaires de navigation jusqu'à un des champs, puis qui remonte via .parent.parent sur le formulaire de saisie lui-même. Mais bon, je suis peut-être passé à côté de quelque chose de plus simple).

    Je mets en résolu mais si un jour quelqu'un passe par là et a une solution plus basique ... ;o)

Discussions similaires

  1. [AC-2003] Modification d'enregistrement dans un sous formulaire
    Par Kaptain84 dans le forum IHM
    Réponses: 6
    Dernier message: 21/12/2009, 07h59
  2. Réponses: 2
    Dernier message: 13/05/2008, 13h16
  3. Annuler les modifications dans un sous-formulaire
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 25/09/2006, 16h32
  4. Réponses: 11
    Dernier message: 16/05/2006, 12h34
  5. Réponses: 23
    Dernier message: 13/10/2005, 16h35

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