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 :

Macro : condition where entre formulaire et sous formulaire [AC-2010]


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut Macro : condition where entre formulaire et sous formulaire
    Bonjour,

    Entre collègue nous élaborons une base de données qui commence à devenir complexe pour notre petit niveau.
    Nous aimerions (sans entrer dans le language vba) :
    -Dans un formulaire (F11), ouvrir un sous formulaire(SF19) contenant une ligne précise d'enregistrements tirées de la table T3.
    L'opération fonctionnait avant que nous introduisions ce sous formulaire.

    Le problème me semble venir de la condition where qui était la suivante : =="[Ndoc-T3]="&[Ndoc-T3]

    Si besoin d'infos supplémentaires, je viendrai tous les jours en donner. je ne peux malheureusement pas partager la bdd.

    Merci d'avance à ceux qui s'impliqueront dans notre problème.

    Bonne soirée

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Je veux bien que tu ne puisses pas partager ta Db. Peux-tu au moins partager tes bouts de code en entier ... ?
    Parce que là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =="[Ndoc-T3]="&[Ndoc-T3]
    C'est nébuleux ...

    Si tu souhaites afficher dans ton SF des enregistrements en fonction d'un contrôle de ton Formulaire (par exemple une liste déroulante), regarde du côté des relations père/fils.

    Bonne journée.

  3. #3
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Je n'ai pas de bout de code mais je vais essayer d’être plus précis.

    Sur le formulaire F6 j'ai un bouton qui est censé ouvrir un formulaire F11 avec l'enregistrement affiché sur le F6 ("Ndoc-T3", basé sur la table "T3").
    J'ai simplement placé une macro sur clic a l'aide du générateur (et non pas de vba) : ouvrir formulaire F11 avec la condition where citée précédemment.

    La structure : Une Table T3 avec une double clé "Ndoc-T3" et "Nclient-T3" en relation "1 vers 1" vers la Table T19 avec les même champs. La clé de la T19 est un numéro auto ("ID-T19").

    Le formulaire F11 doit afficher le numéro auto ainsi que 2 sous formulaires (SF19a et SF19b).
    Le SF19a doit contenir les infos affichées sur le formulaire de base F6.

    A l'origine nous affichions les infos connues non pas dans le SF19a, mais directement sur le F11 et la 'condition where' fonctionnait telle qu'indiquée.
    A mon avis, il me faut 'simplement' modifier le début de l'expression =="[Ndoc-T3]=" & [Ndoc-T3] en quelque chose du style :
    =="[F11]![SF19a]![Ndoc-T3]=" & [Ndoc-T3] mais je tourne en rond.

    Un collègue m'a expliqué une solution rustine mais j'aimerai trouver l'explication à mon problème car j'ai l'impression d'être prêt de la solution.

    Bonne journée également

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Re ...

    Oui, bon perso, moins je vais dans le générateur de macro, mieux de me porte.

    Cela dit (c'est vrai en VBA donc ...) il me semble qu'il te faut faire référence au type d'objet que tu appelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =="[F11]![SF19a]![Ndoc-T3]=" & [Ndoc-T3]
    En l'occurrence : un Formulaire. Veux-tu essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =="Forms![F11]![SF19a]![Ndoc-T3]=" & [Ndoc-T3]
    Cdlt.

  5. #5
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    En testant rapidement ça à l'air de fonctionner. Il me semble avoir un petit problème de source, mais j'y regarderai au boulot tout à l'heure.

    Merci, c'est super rapide comme résolution. Je mettrai "résolu" ce soir sauf si je ne trouve pas mon problème de source.

    Très très très bonne journée

  6. #6
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Re Bonjour/soir à tous et à toi Dixies,
    Je pensais que c'était résolu et que mon problème pouvait venir d'ailleurs, mais non...
    J'ai alors retravaillé ma DB et le problème de la condition where persiste toujours.
    ---------
    Objectif:
    Un bouton du formulaire F6, doit m'ouvrir le Formulaire F11 sur l'enregistrement précisé par le champs "Ndoc-T3" (situé sur le F6).
    La macro du bouton comprend une requête ajout qui copie les champs dont j'ai besoin sur une table T19 et ouvre le F11 suivant la condition where : "[Formulaires]![F11].[Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]F11 s'ouvre malgré tout sur le premier enregistrement.
    J'ai testé tout ce que je pouvais (dont faire précéder le code d'un =, remplacer les 2 . par des ! et ajouter [Formulaire] avant le nom du champ). Je suis complétement bloqué!

    Quelqu'un voit il où peut se situer mon erreur?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour Kintin,

    Je ne suis pas à l'aise avec les macros mais bon ....

    Déjà ceci me semble pas bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "[Formulaires]![F11].[Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]
    Ecrit de la sorte, Access considère que ceci est une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![F6].[Ndoc-T3]
    or ce n'eat pas une variable. Donc veux-tu essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me![Ndoc-T19]=[Formulaires]![F6]![Ndoc-T3]
    Voici un lien qui répond à ta question, ... mais en VBA.
    http://access.developpez.com/faq/?page=Forms#PassValeur

    Cdlt.

  8. #8
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Salut Dixies et merci pour ton implication,

    C'est sur base de ce lien que j'avais trouvé la formulation de la condition. (avec le "*** =" & au lieu d'utiliser un simple =)

    J'ai essayé ton code qui me renvoit à une pop-up qui me demande d'introduire le numero de document. Cela ne fonctionne donc pas.
    Mais vu que le formulaire en cours est à ce stade le F6, le Me. devrait être dans la 2eme partie du code. Ce que j'ai tenté, mais sans succes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Formulaires]![F11].[Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]
    [Formulaires]![F11]![Ndoc-T19]=" & [Formulaires]![F6]![Ndoc-T3]
    =[Formulaires]![F11].[Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]
    =[Formulaires]![F11]![Ndoc-T19]=" & [Formulaires]![F6]![Ndoc-T3]
    [Formulaires]![F11].[Ndoc-T19]=" & Me![Ndoc-T3]
    =[Formulaires]![F11]![Ndoc-T19]=" & Me![Ndoc-T3]
    "Me![Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]
    ="Me![Ndoc-T19]=" & [Formulaires]![F6]![Ndoc-T3]
    [Formulaires]![F11]![Ndoc-T19] = Me![Ndoc-T3]
    Me![Ndoc-T19] = [Formulaires]![F6]![Ndoc-T3]
    A ce stade, voici à peu près tout les codes que j'ai testé. et le seul qui ne m'ouvre pas de pop-up est :
    =[Formulaires]![F11].[Ndoc-T19]=" & [Formulaires]![F6].[Ndoc-T3]Il m'ouvre bien le F11 mais vierge, pourtant en bas de formulaire il est noté "filtré"...

    Bizarre :s

    (Il faudrait peut-etre déplacer ce message dans "macro"???)

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonsoir,

    Où as-tu mis ta condition where ? Sur le bouton du Form_F11 qui ouvre ton Form_F6 ?
    En fait, il faut appliquer le tri sur ouverture du Form_F6.
    J'ai testé avec ceci :
    [Ndoc-T3]=Formulaires!F11![Ndoc-T19]

    et ça marche.
    Je te joints mon exemple.

    Bonne soirée.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    En fait, c'est l'inverse je pars du F6 vers le F11. Mais je suis ton raisonnement,
    J'ai effectivement placé ma condition sur le bouton situé sur le F6. Je vais tester ton code sur ouverture et je reviens éditer mon post.
    Merci
    --- edit : ton exemple ne fonctionne pas sur mon pc... ce qui m’amène à penser que ce sont peut être les options de mon office qui bloque le filtre :-s... je vais regarder à ça et reviens éditer.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonsoir,

    Mais en fait, tu n'a même pas besoin de mettre une macro sur ouverture de ton Form.

    Dans les propriétés de F11, va sur Filtre et colle cette expression : [Ndoc-T19]=Forms!F6![Ndoc-T3] (le F6 appelle le F11) et regarde en dessous : Filtrer sur chargement = Oui

    Cdlt.

  12. #12
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Merci pour cette solution.
    Le problème semble être différent d'un problème de code...
    En bas du formulaire l'icone du filtre est présente
    Nom : 474290filtre.png
Affichages : 467
Taille : 1,1 Ko
    Et le code du filtre s'affiche dans les propriétés.
    Cela se passait également lorsque je testais la condition where... Pourtant le formulaire reste vierge.
    De plus comme ton fichier exemple ne fonctionne pas non plus sur mon pc, le problème doit venir d'ailleurs... Mais où??? Mystère pour moi...
    Propriété office? propriété du formulaire? Interférence entre moi et access... Je deviens fou avec ce truc

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    Alors il y a une solution : envoie moi ta Db, épurée de tes données, juste ces deux formulaires et la table liée (avec quelques (fausses) données dedans).
    Je la testerai.

    Courage et confiance

  14. #14
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    Merci de ton aide... Cela m'a permis de faire enfin fonctionner le filtre.
    Je m'explique :
    J'ai voulu t'envoyer la Db apurée, en copiant les Tables, Requêtes, Formulaires associés dans une nouvelle DB et j'ai remarqué que ça fonctionnait enfin!
    J'ai donc rajouté progressivement chaque T, R et F en testant pour trouver l'endroit qui posait problème jusqu'à avoir tout copié sans trouver la cause.
    Il n'y a que les relations que je n'ai pas encore rajouté. Ce qui m'a fait pensé que l'erreur venait de là. J'ai donc supprimé la relation sur ma première DB, mais dans ce fichier là, le problème persiste :-s...
    C'est un grand mystère de l'informatique, je n'y comprend rien du tout car je n'ai modifié aucune données.
    L'important c'est que cela fonctionne dans le nouveau fichier, mais si tu y comprends quelque chose, j'aimerai savoir.
    En tout cas, merci merci merci de t'être intéressé à mon problème.
    --------------
    EDIT :
    en rajoutant les relations sur la nouvelle DB le problème est réapparu et quand je les ai supprimée à nouveau le problème est malgré tout resté...
    --------------
    EDIT :
    Après 15000tests, l'affichage du filtre arrete de fonctionner au moment ou j'enregistre la DB.
    J'ai copié ma DB et tout fonctionne. J'enregistre et là ça ne fonctionne plus... Je t'envoi la DB bientôt
    -----------
    EDIT:
    2 collègues ont testés sur leur pc et ça fonctionne. c'est incompréhensible mais je suis content.
    Je ne vais pas t'envoyer la DB car j'ai du mal à l'épurer et vu que ça semble fonctionner sur les autres pc.
    Du coup, je ne sais pas si je note résolu ou si j'attends de trouver pourquoi ça coince sur mon pc :s.

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonsoir Kintin,

    Et bien je suis ravi que tu es réussit à faire ce que tu cherchais.
    Tu as dit que la Db que je t'ai envoyée ne fonctionne pas non plus sur ton PC.
    Donc, il y a interférence entre ton PC et Access. Pour le coup, je ne suis plus à la hauteur pour t'aider à ce niveau. Désolé

    Mais je t'invite néanmoins à éclaircir ce souci, peut-être dans la section Runtime de ce forum.

    Bon développement. A bientôt sur un autre topic ...

  16. #16
    Membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Janvier 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Janvier 2015
    Messages : 72
    Points : 43
    Points
    43
    Par défaut
    A bientot, c'est tellement vaste access que c'est à peu pres sur que je repasse ici :-) ptet après avoir un peu potasser le vba

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

Discussions similaires

  1. Lier un sous-formulaire à un sous-formulaire
    Par bobosh dans le forum IHM
    Réponses: 2
    Dernier message: 02/03/2021, 11h45
  2. Réponses: 5
    Dernier message: 06/05/2015, 12h24
  3. Réponses: 2
    Dernier message: 24/06/2013, 09h31
  4. Réponses: 2
    Dernier message: 23/06/2013, 21h07
  5. Accéder à un sous-formulaire de sous-formulaire
    Par touftouf57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/11/2008, 19h04

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