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 :

Syntaxe pour modifier sous formulaire dans contrôle d'onglets


Sujet :

IHM

  1. #1
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut Syntaxe pour modifier sous formulaire dans contrôle d'onglets
    Bonjour,
    Dans un contrôle d'onglets, j'ai un formulaire Opération :
    Dans le formulaire Opération, il y a une liste déroulante (Ici indiquée "Assurance") correspondant à Compte 7.
    Si je la modifie à "Courant" --> Compte 6 et que je clique sur Banque :

    Nom : formulaire opération.gif
Affichages : 109
Taille : 24,5 Ko
    J'ouvre un formulaire Detenteur.

    Nom : formulaire détenteur.gif
Affichages : 113
Taille : 61,5 Ko
    J'arrive dans le formulaire Détenteur.
    Je souhaite que le sf_Detenteur se mette sur le compte 6.
    l_CompteFK est une variable Public correspondant au CompteFK
    ID_CompteFK correspond à l'indice 6 ou 7 dans le sous-formulaire
    txt_ChoixCompteFK est le champ correspondant au sf_Detenteur (en orange)
    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     Dim rs As DAO.Recordset
     
        Me.Détenteur.Visible = True
        Me.Banque.Visible = True
        Me.Contact.Visible = True
        Me.Compte.Visible = True
        Me.Détenteur.SetFocus
        Me.btn_Banque.Visible = False
        Me.Btn_Operations.Visible = True
        Me.Catégorie.Visible = False
        Me.Sous_Catégorie.Visible = False
        Me.Payement.Visible = False
        Me.Opération.Visible = False
        Me.btn_Equilibrer.Visible = False
     
     If [Formulaire Detenteur].Form!txt_ChoixCompteFK <> l_CompteFK Then                                                            '7<>6
             Set rs = [Formulaire Detenteur]![Compte Detenteur sous-formulaire].[Form].RecordsetClone
             Debug.Print "l_CompteFK origine : " & l_CompteFK                                                                        'Ici on obtient bien le compte désiré, 6 en l'occurence
             Debug.Print "ID_CompteFK 1 : " & [Formulaire Detenteur]![Compte Detenteur sous-formulaire].[Form]![ID_CompteFK]         'Ici on obtient bien le compte actuel, 7 en l'occurence
             rs.FindFirst [Formulaire Detenteur]![Compte Detenteur sous-formulaire]![ID_CompteFK] & "=" & l_CompteFK
             Debug.Print "ID_CompteFK 2 : " & [Formulaire Detenteur]![Compte Detenteur sous-formulaire].[Form]![ID_CompteFK]         'Cela ne fonctionne pas, on est toujours à 7
             If rs.NoMatch Then
                   MsgBox "pas trouvé"
    Le mieux est l'ennemi du bien

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    la syntaxe est incorrecte car elle compare une valeur du sous-formulaire à une autre valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.FindFirst [Formulaire Detenteur]![Compte Detenteur sous-formulaire]![ID_CompteFK] & "=" & l_CompteFK
    ce qui ne doit rien donner, le code correct est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.FindFirst "[ID_CompteFK] = " & l_CompteFK
    qui compare un champ de la source de données à une valeur et si [ID_CompteFK] est bien un champ de la source de données du sous-formulaire (et pas le nom du contrôle), sinon mettre le bon nom
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut
    Bonjour tee_grandbois,
    Je ne comprends pas bien.
    Le bouton se trouve sur le formulaire navigation, il fait appel (pour moi) au Détenteur qui se trouve dans le contrôle d'onglets ensuite au sous-formulaire de celui-ci.
    Pour moi, le code ne peut-être un simple appel, il ne trouvera pas le champ avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.FindFirst "[ID_CompteFK] = " & l_CompteFK
    D'autant que le formulaire affiché est celui d'Opération.
    Le mieux est l'ennemi du bien

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Peut-être manque-t-il tout bêtement un évènement sur votre combobox Assurance/Courant pour rafraichir le recordset du form/sform lorsque vous changez de valeur.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut
    Je suis navré malgré une cinquantaine d'essai, je n'y arrive pas.
    Mon problème est toujours le bouton Banque qui ne m'amène pas sur le bon enregistrement. Avec le bouton Opération, aucun problème.
    Je joins le fichier, pour vous se sera certainement plus facile.
    Merci d'avance
    Fichiers attachés Fichiers attachés
    Le mieux est l'ennemi du bien

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Solution simple, vraiment pas le temps de décortiquer tout votre VBA
    Je suppose que vous cherchez à filter le sform sf_detenteur selon le compte sélectionné dans lst_LibelleCompte.
    En image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txtbox indépendante verte : txtTest
    source : =[Formulaire Operation].[Formulaire]![txt_CompteFK]
    .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    txtbox indépendante rouge: txtDetCpte
    source : =[Formulaires]![_f_Navigation]![txtTest]
    .
    sf_Detenteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Champ Père : txtDetCpte
    Champ Fils : ID_CompteFK
    .
    Images attachées Images attachées  
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  7. #7
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut
    Merci hyperion13 pour ta réponse, mais je ne souhaite pas filtrer, juste me positionner sur le compte appelé.
    Le mieux est l'ennemi du bien

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    Citation Envoyé par hyperion13
    Salut
    Solution simple, vraiment pas le temps de décortiquer tout votre VBA
    complètement d'accord avec toi hyperion13 (cela sent presque l'usine à gaz et je suis poli), d'autant plus qu'il n'y a même pas moyen de retrouver le code posté en #1
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Ok, je veux bien
    Mais une fois positionné dans le sform, vous avez l'intention de créer une proc? Ou c'est simplement pour le "fun" le positionnement?
    Citation Envoyé par Superpat9999 Voir le message
    Merci hyperion13 pour ta réponse, mais je ne souhaite pas filtrer, juste me positionner sur le compte appelé.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  10. #10
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    C'est l'usine AZF mais en pire
    Citation Envoyé par tee_grandbois Voir le message
    bonjour,
    complètement d'accord avec toi hyperion13 (cela sent presque l'usine à gaz et je suis poli), d'autant plus qu'il n'y a même pas moyen de retrouver le code posté en #1
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Ok, je veux bien
    Mais une fois positionné dans le sform, vous avez l'intention de créer une proc? Ou c'est simplement pour le "fun" le positionnement?
    C'est vrai, c'est l'usine à gaz !
    Et c'était juste pour le fun !
    Je ne comprenais pas que ça marche dans un sens mais pas dans l'autre.
    Navré pour le dérangement.
    Le mieux est l'ennemi du bien

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    Citation Envoyé par Superpat9999
    C'est vrai, c'est l'usine à gaz !
    ah! tu vois
    je n'ai pas pu tester dans de bonnes conditions mais essaie cette instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Formulaire_Detenteur.Form.Controls("Compte Detenteur sous-formulaire").Form.Recordset.FindFirst "[ID_CompteFK] = " & l_CompteFK
    juste après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Formulaire_Detenteur.Controls("Compte Detenteur sous-formulaire").SetFocus
    car il est inutile de créer autant de code pour se positionner sur un enregistrement dans un sous sous-formulaire, il faut juste connaitre le nom des objets concernés (c'est ce qu'il me manquait au début)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  13. #13
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Mince, tu m'as devancé
    Citation Envoyé par tee_grandbois Voir le message
    ah! tu vois
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  14. #14
    Membre habitué Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Points : 191
    Points
    191
    Par défaut
    Merci à tous les 2 pour vos réponses qui m'ont faites avancer dans la connaissance de la manœuvre de VBA.
    tee_grandbois, c'est exactement cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Formulaire_Detenteur.Controls("Compte Detenteur sous-formulaire").SetFocus
    Me.Formulaire_Detenteur.Form.Controls("Compte Detenteur sous-formulaire").Form.Recordset.FindFirst "[ID_CompteFK] = " & l_CompteFK
    J'avais trouvé le SetFocus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaire Detenteur]![Compte Detenteur sous-formulaire].SetFocus
    Pour le dernier code, je me mélangeais les pinceaux entre les crochets, les guillemets et le point d'exclamation et surtout où positionner Findfirst. La syntaxe n'est pas toujours évidente.
    Maintenant j'ai un exemple que je vais pouvoir reproduire.
    Le mieux est l'ennemi du bien

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

Discussions similaires

  1. [LibreOffice][Tableur] [BASIC] Macro pour modifier les propriétés de contrôle d'un formulaire
    Par DensGP33 dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 12/06/2019, 09h13
  2. [AC-2000] Modifier source sous-formulaire dans un état
    Par Mycose dans le forum IHM
    Réponses: 1
    Dernier message: 06/12/2010, 20h32
  3. Syntaxe pour éléments de formulaire sous IE
    Par ketzouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/04/2008, 08h45
  4. sous formulaires dans contrôle onglet
    Par mic220879 dans le forum Access
    Réponses: 1
    Dernier message: 31/01/2007, 20h03
  5. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24

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