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 :

[Tutoriel] Un formulaire de recherche basé sur la technique du père/fils


Sujet :

Access

  1. #1
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut [Tutoriel] Un formulaire de recherche basé sur la technique du père/fils
    Bonjour à tous,

    Voici un tutoriel de plus sur les recherches multicritères

    Sa particularité : il est très bref et il fait appel à la technique des formulaires « père/fils ».

    Dans ce tutoriel, vous apprendrez à transformer, en quelques clics et copiés/collés, votre formulaire original en un outil de recherche multicritère.
    Vous y trouverez aussi une manière inhabituelle d'utiliser la technique des formulaires « père et fils » pour réaliser votre sélection.
    L'idée consiste à construire un nouveau formulaire « père » contenant un contrôle par critère de choix et votre formulaire original en tant que
    « fils ».


    Vos remarques sont les bienvenues

    madefemere et Claude
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Espagne

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut erreur: usage du mot cle Me n'est pas valide
    Bonjour

    J'ai une erreur et je sais pas comment résoudre le problème.
    erreur: usage du mot cle Me n'est pas valide.

    Quelqu'un peut-il m'aider? merci .
    Je suis un total debutant en VB.

    Alexandre

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    « Me. » c'est un raccourci pour dire « l'objet dont il est question dans ce module ».

    Tu peux donc l'utiliser uniquement dans un module de formulaire ou d'état.

    Si tu as ce message d'erreur, c'est que tu as écrit « Me. » dans un module ordinaire. Là, tu dois spécifier l'objet en donnant son nom complet, quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!LeNomDuFormulaire
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Points : 11
    Points
    11
    Par défaut problème avec ME(sContenur)
    Bonjour,

    je viens d'installer le code qui se déclenchera après la mise à jour (copier/coller) dans un module que j'ai appelé module_PereFils. Access me refuse le code ME (sConteneur) ainsi que les autres ME par ailleurs.
    Je les ai remplacé par forms![NomForm_Pere] et les autres ME comme proposé dans les commentaires. Access me les accepte mais cela ne fonctionne pas. De plus, je souhaiterai utilisé ce module dans différents formulaires et si je procède de la sorte, il me faudra répéter ce code.
    J'ai aussi tenté d'installer ce code dans le module du formulaire... sans résultat.

    Où ai-je commis une erreur ?

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Je ne comprends pas trop ce que tu expliques : si ta base est convertible en version Access2000, postes-en le Zip et je regarderai ce que tu as fait.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Points : 11
    Points
    11
    Par défaut réponse
    Merci Claude pour ta rapidité... qui ne sera pas la mienne car je dois partir dans 5 min.

    Sache déjà que je travaille avec ACCESS 2016 et que j'ai recopié les trois schémas (le code dans un module, le code sur ouverture du formulaire concerné ainsi que sur chaque controle après MAJ) comme le prévoit ta procédure (en modifiant bien entendu le nom du sous-formulaire).
    Ma DB est un grand volume +/-160 Mega... que veux-tu que je te transmette ?

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Regarde si tu peux convertir ta base en version Access2000.

    http://claudeleloup.developpez.com/F...access2000.pdf
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    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 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonsoir Claude,
    indépendamment du problème de bipbip56, est-ce que ce code issu de Public Sub Actu() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me(sConteneur).LinkChildFields = Me.cntrVINS.LinkChildFields _
                 & "[" & Right(ctl.Name, Len(ctl.Name) - 6) & "];"
             Me(sConteneur).LinkMasterFields = Me.cntrVINS.LinkMasterFields _
                 & "[" & ctl.Name & "];"
    ne devrait pas être plutôt comme ceci ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me(sConteneur).LinkChildFields = Me(sConteneur).LinkChildFields _
                 & "[" & Right(ctl.Name, Len(ctl.Name) - 6) & "];"
             Me(sConteneur).LinkMasterFields = Me(sConteneur).LinkMasterFields _
                 & "[" & ctl.Name & "];"
    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
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Guy et bipbip56,

    Tu as tout à fait raison Guy : c’est une distraction de ma part !
    Quand j’ai « généralisé » mon code original (qui était spécifique à ctnrVins), j’ai oublié de corriger aux endroits que tu signales.
    Et mes tests n’ont pas mis cette erreur en évidence : dans mon contexte, « Me(sConteneur) » et « Me.cntrVINS » sont synonymes.
    Maintenant, je comprends ce qu’explique bipbip56 : chez lui le conteneur du fils ne s’appelle certainement pas « cntrVINS » ! Évidemment, c’est là que ça coince…
    Toutes mes excuses, je corrige dans l’heure qui suit.
    Merci à vous deux.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Le tuto en ligne est modifié.

    Donc bipbip56 dans le module associé au formulaire père, remplace le code de Public Sub Actu() par celui-ci

    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
    Public Sub Actu()
      On Error GoTo GestionErreurs
      Dim ctl As Control
      Me(sConteneur).LinkMasterFields = ""
      Me(sConteneur).LinkChildFields = ""
      For Each ctl In Me.Controls
         If Left(ctl.Name, 6) = "filtre" And Not IsNull(Me(ctl.Name)) Then
             Me(sConteneur).LinkChildFields = Me(sConteneur).LinkChildFields _
                 & "[" & Right(ctl.Name, Len(ctl.Name) - 6) & "];"
             Me(sConteneur).LinkMasterFields = Me(sConteneur).LinkMasterFields _
                 & "[" & ctl.Name & "];"
         End If
      Next ctl
      Exit Sub
    GestionErreurs:
      Select Case Err.Number
        Case 2335  'survient à partir de la 2e affectation d'un champ fils (sans conséquence)
          Resume Next
        Case Else
          MsgBox "Erreur dans Sub Actu : " & Err.Number & " " & Err.Description
      End Select
    End Sub
    ... et je croise les doigts, ça devrait fonctionner chez toi.

    Navré pour le contretemps.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Points : 11
    Points
    11
    Par défaut corrections faites mais....
    Bonjour Claude,

    Peux-tu me préciser l'endroit exact où tu installes le code Public Sub Actu() corrigé ?

    Si je l'installe dans un module indépendant, ACCESS me rejette toujours les fonctions Me.
    Si je l'installe dans le module du formulaire Père, ACCES me l'accepte mais je n'ai aucun résultat...

    Merci pour ton aide.

    ps: je ne parviens pas à t'envoyer une copie de la DB exemple

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    C'est dans le module du formulaire père.

    ps: je ne parviens pas à t'envoyer une copie de la DB exemple
    À cause que tu ne peux la convertir en version Access 2000 ? Ou une autre raison ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  13. #13
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Mars 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 6
    Points : 11
    Points
    11
    Par défaut abandon...
    Désolé Claude,

    j'ai contourné le problème en utilisant les commandes linkchildfields et linkMasterFileds via des boutons plutôt que des listes déroulantes et cela fonctionne...
    je tâcherai de revenir sur ta procédure plus tard car elle m'intéresse toujours mais pour l'instant je n'ai pas le temps de m'y atteler.

    Grand merci pour ton attention et ta rapidité de réaction.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Avril 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Résultat
    Bonjour

    Je vous remercie en premier lieu pour le temps que vous prenez pour faire ces tutoriels pour tenter d'expliquer les rouages d'Access.
    Dans un second temps, je débarque sur ces commentaires concernant cet exemple de formulaire.

    Question 1) : je test votre code (sur Access 2013),
    cas 1 : Quand je filtre avec le premier critère, il est comme inactif et ne me présente aucune suggestion dans la liste de choix (liste vide et non sélectionnable). Ma table dans mon formulaire ne bouge pas.
    cas 2 : Quand je filtre avec le second critère (sans avoir filtré avec le premier), j'obtiens bien la ligne souhaité.

    Question 2) : Connaissez vous un moyen simple de filtrer le second critère par rapport au premier ? J'ai essayé la méthode en passant par des requêtes, mais elle ne me donne pas de résultats satisfaisants.

    Au plaisir de vous lire
    Xbluxblu

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Xbluxblu et bienvenue chez nous,

    Merci pour l'intérêt porté à ce tutoriel.

    je teste votre code (sur Access 2013)
    As-tu essayé avec la base qui est proposée en téléchargement sans y apporter de modifications ?

    Connaissez-vous un moyen simple de filtrer le second critère par rapport au premier
    Dans l'exemple du tutoriel, tous les critères sont cumulables :

    Nom : N318.jpg
Affichages : 357
Taille : 117,0 Ko

    Nom : N319.jpg
Affichages : 351
Taille : 74,0 Ko
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #16
    Membre à l'essai
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Avril 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci pour ta réactivité (et pour ton accueil)

    Pour ce qui est du premier point, j'ai effectivement testé ta base de donnée et elle fonctionne parfaitement, j'aurais du le préciser.

    Pour ce qui est du second point, ce n'est pas exactement cela que je souhaite. Pour être plus précis en prenant ton exemple, je souhaiterais obtenir par exemple en sélectionnant les BORDEAUX, n'avoir que les choix existants en CATEGORIE. Mais en écrivant cela, je constate que tu as certains enregistrements de catégorie vide.
    En ce qui me concerne, l'équivalent dans ma table à "CATEGORIE" est une clef primaire, donc aucun champ vide.

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    OK, compris.
    Je te reviens avec l'exemple modifié.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #18
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Regarde la propriété Contenu des zones de liste modifiable pour voir comment restreindre les choix en fonction des critères déjà choisisNom : N322.jpg
Affichages : 402
Taille : 112,9 Ko

    Et les événements Après mise à jour des zdl.
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  19. #19
    Membre à l'essai
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Avril 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Désolé du retard de réponse.

    J'ai fait gaffe à la mise à jour des zones de listes, et effectivement ça a plutôt débloqué mon soucis.
    En revanche, la base que tu as mise à jour de fonctionne plus : aucune liste ne filtre le sous formulaire fVINS...

  20. #20
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    ... pourtant :

    Nom : N344.jpg
Affichages : 316
Taille : 91,4 Ko
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. [AC-2013] Modifier la recherche basée sur la technique du père/fils
    Par yclaf dans le forum Access
    Réponses: 5
    Dernier message: 20/05/2014, 22h25
  2. Formulaire multi-upload basé sur le tutoriel d'Antoine Herault - Demande d'explication & d'aide
    Par juliemanarah dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/05/2013, 18h10

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