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

VBA Access Discussion :

Quel évènement pour déclencher un code dans un sous sous formulaire ? [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut Quel évènement pour déclencher un code dans un sous sous formulaire ?
    Bonjour à tous,

    j'ai mis sur pied ce code pour se positionner sur un enregistrement dans un formulaire continue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim rst As Recordset
        Set rst = frm.RecordsetClone
        rst.FindFirst "[Ho_jourscontrat]=Date()"
     
            If rst.NoMatch Then
                DoCmd.GoToRecord , , acFirst    ' Si pas d'occurrence trouvée
            Else
                frm.Bookmark = rst.Bookmark     ' Se positionne sur l'enregistrement correspondant
            End If
    Il marche très bien, mais mon formulaire est contenu dans un formulaire, lui même dans un autre formulaire. Je voudrais pouvoir appeler ce code dès que je change d'enregistrement lié dans le 1er sous formulaire dans l'ordre des évènements suivants :

    J'ouvre mon formulaire Form.

    A l'ouverture il filtre les enregistrements de son sous formulaire SF1, et affiche le premier, en formulaire unique.
    Le premier enregistrement affiché filtre donc les enregistrements de mon Sous-sous-Formulaire, donc SF2, en formulaire continue.
    Mon code se déclenche et le curseur se positionne sur l'enregistrement voulu de SF2.

    Si je change d'enregistrement dans SF1 ou Form, mon SF2 se mets aussi à jour, et le code se déclenche aussi.

    J'ai bien tenté sur tout les évènements de SF2, de passer par SF1 en faisant référence avec

    Et j'ai tenté de regarder dans la faq mais je n'ai pas réussi :/.

    Une idée de comment faire ?

    Merci d'avance,

    Sardaucar

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Peut-être une réponse dans le tuto : Les syntaxes d'appel - Interaction des formulaires et des états.

    Bonne continuation

  3. #3
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    J'ai bien essayé avec ce code, comme dans le lien fourni :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim rst As Recordset
     
    Set rst = Forms.F_Saisie_Horaire.SF_Saisie_Horaire.Form.SF_Horaire.Form.RecordsetClone
     
        rst.FindFirst "Forms.F_Saisie_Horaire.SF_Saisie_Horaire.Form.SF_Horaire.[Ho_jourscontrat]=Date()"
     
            If rst.NoMatch Then
                DoCmd.GoToRecord , , acFirst    ' Si pas d'occurrence trouvée
            Else
                frm.Bookmark = rst.Bookmark     ' Se positionne sur l'enregistrement correspondant
            End If
    Mais ça me mets une erreur sur le rst : propriété ou méthode non définie par cet objet. :/

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,
    Vu que ton instanciation est correct, le code devrait être plus simple je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim rst As Recordset
     
    Set rst = Forms.F_Saisie_Horaire.SF_Saisie_Horaire.Form.SF_Horaire.Form.RecordsetClone
     
        rst.FindFirst "[Ho_jourscontrat]=Date()"
     
            If rst.NoMatch Then
                DoCmd.GoToRecord , , acFirst    ' Si pas d'occurrence trouvée
            Else
                frm.Bookmark = rst.Bookmark     ' Se positionne sur l'enregistrement correspondant
            End If
    Cordialement,

  5. #5
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    Effectivement ça marche mieux, mais maintenant il me mets une erreur sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frm.Bookmark = rst.Bookmark
    Pensant qu'il ne connaissait pas frm, j'ai remplacé par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms.F_Saisie_Horaire.SF_Saisie_Horaire.Form.SF_Horaire.From.Bookmark = rst.Bookmark
    Mais ça me met propriété ou méthode non gérée par cet objet :/.

    Je suis dans le flou.

  6. #6
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Form ou From ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Forms.F_Saisie_Horaire.SF_Saisie_Horaire.Form.SF_Horaire.From.Bookmark = rst.Bookmark

  7. #7
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    Merci c'était simplement ça !

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

Discussions similaires

  1. [AC-2003] Quel événement pour mettre à jour une somme dans une box
    Par yieiyiei dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/03/2015, 09h29
  2. Réponses: 12
    Dernier message: 02/10/2014, 09h37
  3. Réponses: 5
    Dernier message: 19/08/2007, 14h47
  4. Quel événement pour clic sur un sous-form ?
    Par AndréPe dans le forum IHM
    Réponses: 10
    Dernier message: 19/03/2007, 17h11
  5. Réponses: 1
    Dernier message: 30/03/2005, 14h03

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