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 :

[A-00] Comment gérer un évènement d'un sous-formulaire au niveau du formulaire?


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut [A-00] Comment gérer un évènement d'un sous-formulaire au niveau du formulaire?
    Je voudrais gerer l'évènement "si modification" (Form_Dirty) d'un sous formulaire au niveau de mon formulaire.
    Concrètement, une modification d'un champ du sous-formulaire devra mettre la date du jour dans le champ DateModifFiche du formulaire.
    Je n'avance pas sur le sujet.
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Pas testé.

    Dans l'événement Si modification du sous-formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     
        Me.Parent.DateModifFiche = Date()
     
    End Sub
    Domi2

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Ca fonctionne! Merci. Je ne connaissais pas Parent.
    Sauf que:
    Si j'ouvre le sous formulaire en tant formulaire, il faudrait un truc type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.Parent Then
            Me.Parent.DateModifFiche = Date
        End If
    mais quoi pour savoir s'il y a un parent?

    J'ai un champ source dans le sous-formulaire qui s'appelle date donc il transforme automatiquement le code date() en date. Il va falloir que je renomme le champ source. Y a-t-il un autre moyen pour que l'interpréteur ne fasse pas de confusion?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Je ne comprends pas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Parent.DateModifFiche = Date
    me dit maintenant que j'ai renommé mon champs:
    Erreur d'exécution '2465':
    Impossible de trouver le champs 'Date' auquel il est fait référence dans votre expression.
    Pourtant j'ai le même type de fonction codée au niveau du formulaire et ça fonctionne. Je ne comprends pas qu'il ne voit pas Date comme une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Parent.DateModifFiche = Now()
    par contre fonctionne mais c'est la date que je veux, pas la date & l'heure.

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonsoir,

    Ouach...

    Regarde ici...

    C'est un tuto indispensable... Je parie que même (et surtout) les pros, gardent la récap des appels affichées au mur du bureau...

    Domi2

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Super c'est le theme que je cherchais et que je ne trouvais pas. Ca fait 7-8 ans que je n'ai pas mis le nez dans Access et VBA. J'ai un peu tout oublié. Pourtant j'ai lu quelques tutos déjà mais il en manque toujours un qu'on a pas vu. Il n'y a plus qu'a se mettre au boulot.

    Merci de plus c'est peut-être involontaire mais le sujet http://loufab.developpez.com/appelformulaire/#LIV-D était la cause de mon problème avec Date.
    J'ai désactiver la correction automatique (je la réactiverai plus tard) et fait copier/coller de mon sous-formulaire pour etre un peu plus sure.
    Maintenant il ne dit plus que c'est un champs Date et le prend pour une fonction.

    De plus pour le test pour savoir s'il y a un Parent j'utilise le code indiqué dans ce topic:
    comment connaitre l'existence d'un parent? erreur 2452

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Finalement j'ai décidé de provoquer l'évènement BeforeUpdate du formulaire au niveau du sous-formulaire car la façon de je gérais ça précédemment posait quand même problème. J'avais pas mal de mise à jour à calculer au niveau du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_BeforeUpdate(Cancel As Integer)
        If mp_IsSubForm(Me) Then
             Me.Parent.Form_BeforeUpdate (False)
        End If
    End Sub
    Pour que ça fonctionne j'ai rendu "Public" la fonction Form_BeforeUpdate.

    Je ne sais pas si cela est intelligent. En tout cas je trouve cela cohérent: Une mise à jours au niveau du sous-formulaire génère une mise à jour au niveau du formulaire. Et puis ça marche

    Des commentaires?

Discussions similaires

  1. Comment gérer l'événement d'un bouton ?
    Par zaydoun_391 dans le forum Débuter
    Réponses: 1
    Dernier message: 18/11/2007, 20h27
  2. Réponses: 26
    Dernier message: 30/07/2007, 12h09
  3. Réponses: 2
    Dernier message: 21/07/2006, 13h15
  4. [Débutant][C#] Comment gérer les événements ?
    Par aDamas dans le forum Windows Forms
    Réponses: 11
    Dernier message: 14/12/2005, 00h16
  5. Réponses: 5
    Dernier message: 25/07/2005, 09h29

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