1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut Fonction recherche dans formulaire avec onglets de navigation

    Bonjour à tous,

    Je viens d'arriver sur ce forum, je vais donc commencer par une petite présentation. Je travaille pour une association, j'aime bien l'informatique mais je suis très loin d'être une experte. Je n'ai jamais fait de formation à part des tutoriels regardés sur internet.

    Je dois élaborer une base de données pour enregistrer le profil de personnes et pouvoir l'alimenter au fil des différents rdv.
    J'ai créé une table avec l'ensemble des informations que je souhaite recueillir.
    A parti de cette table, j'ai créé plusieurs formulaires afin de réaliser mon formulaire final.
    Ce formulaire final est un formulaire de navigation par onglet réalisé grâce à la création par assistance. J'ai créé une liste déroulante dans l'en-tête de ce formulaire finale afin de pouvoir observer les informations de chaque personne individuellement. Ma liste déroulante fonctionne très bien seulement elle ne semble pas liée à mes différents onglets car ceux-ci restent figés sur les informations de la première personne de ma table.

    Existe-t-il une solution abordable pour une novice en access (je ne maitrise absolument pas les macros) ??? N'aurais-je pas du utiliser un formulaire de navigation ???

    J'ai beau chercher une solution depuis plus d'une semaine rien ne fonctionne alors je m'en remets à vous.

    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Bonjour.

    Je viens de faire quelques essais et je pense qu'il va falloir revoir ton interface et ajouter un peu de code.
    On peut filtrer (ou faire une recherche) dans un formulaire de navigation mais seulement dans le formulaire actuellement visible.
    Les autres formulaires ne sont pas accessibles quand ils ne sont pas affichés.

    On peut par code accéder au formulaire courant en faisant en VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.SousFormulaireNavigation.Form
    Par exemple le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Me.SousFormulaireNavigation.Form.Filter = "[Clef]=" & Me.ListeClef
        Me.SousFormulaireNavigation.Form.FilterOn = True
    Applique un filtre au formulaire actuellement visible et n'affiche plus que les enregistrements dont la clef est égale à la valeur choisie dans ListeClef.

    D'après ce que tu as posté, j'ai compris que tu avais plusieurs formulaires affichant des informations pour une même personne et que quand tu choisis une personne, tu veux que tous les écrans affichent ses données.

    Est-ce bien cela ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    Bonjour

    Tout d'abord merci pour la réponse.

    Je pense que tu as bien compris le fait que j'ai plusieurs formulaires mais j'ai regroupé l'ensemble de mes formulaires dans un seul formulaire de navigation par onglet. Par conséquent, j'ai plusieurs formulaires regroupé dans un seul mais je n'ai pas de "sous-formulaire" (j'ai vu que je pouvais en créer mais j'ai procédé autrement grâce au formulaire de navigation).

    Je vais essayer de voir comment je peux appliquer ce que tu me dis sachant que je ne connais rien au VBA non plus (je pense que j'ai été très optimiste en voulant créer un truc pareil)

    Une capture d'écran afin de bien se comprendre
    Doc access.pdf

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Bonjour.

    Si tu as plusieurs formulaires regroupés dans un seul, alors tous ces formulaires sont de fait des sous-formulaires. :-).

    Poste plutôt un image de qu'un fichier. Cela facilite la vie du lecteur qui n'a pas à télécharger ton fichier pour avoir l'info.

    Sinon, je pense que tu serais mieux servie en utilisant pas les formulaires de navigation.
    Je t'invites à aller voir la discussion
    Synchronisation des données sur formulaire de navigation
    https://www.developpez.net/forums/d1...re-navigation/

    Qui est grosso-modo sur le même sujet pour l'architecture de l'interface.

    Et la rechercher serait BEAUCOUP plus facile à implanter même si elle nécessitera quand même un peu de code.

    Si cela ne te satisfait pas, dit le.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    Merci beaucoup pour le lien, je pense effectivement que cela sera plus abordable pour moi

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Attention tu n'es quand même pas sortie du bois :-).

    Il faut implanter le code pour gérer ta recherche et c'est quand même assez simple.

    Tu vas sur ta liste en mode conception de formulaire.
    Je vais supposer que ta liste que je vais appeler lstPersonne retourne ClefPersonne (Entier Long ou Autonum), NomPrenom (Texte).
    Tu demandes d'afficher les propriétés.
    Tu choisis l'onglet événement et tu vas sur "Après Mise à Jour".
    Tu choisis Procédure Événementielle et tu appuis sur le bouton [...].
    Access va t'amener automatiquement dans l'éditeur de code VBA.
    Entre le sub et le end sub tu vas taper :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if me.lstPersonne & "" = "" then
          'La liste est vide, pas de filtre
          me.filter=""
          me.filteron=false
       else
          'Cacule et applique le filtre
          dim filtre as string 'Sert à stocker le filtre calculé
          filtre="[ClefPersonne]=" & me.lstPersonne 'Récupère la clef de la personne de la liste
          me.filter=filtre 'Indique le filtre à appliquer au formulaire courant
          me.filteron=true 'Applique le filtre
    end if
    Si le nom de ta liste est différent, il suffit de remplacer lstPersonne par son nom.
    Si la structure de ta liste est différente, il faut que tu la décrives car la syntaxe pourrait changer.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    Je vais dejà me pencher sur la première partie à construire avant d'insérer une fonction recherche et si je suis à la limite de jeter l'ordi par la fenetre je reviens demander de l'aide

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    J'ai réalisé toutes mes tables tous mes formulaires pour pouvoir mettre des sous-formulaires par la suite.

    J'ai également tenté (eh oui tenté puisque cela ne fonctionne pas) de faire des relations entre mes tables. Cependant, chaque onglet ne se met pas à jour lorsque je passe à un enregistrement suivant. Je pense donc que je n'ai pas fait les bons liens entre mes tables.

    Nom : Capture.PNG
Affichages : 24
Taille : 121,4 Ko

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    10 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 10 167
    Points : 15 590
    Points
    15 590

    Par défaut

    Bonjour.

    Oui cela vient de tes relations qui ne sont pas définir comme tu en as besoin.

    Je pense que toutes tes tables sont des compléments d'information reliés à une présentation.
    Si c'est bien cela tu devrais avoir

    Présentation
    No
    Autres infos

    Information Generale
    No
    NoPrésentation (entier long)
    Autre infos

    • en relation avec Présentation sur [Présentation].[No] ->[Information Generale].[NoPrésentation]



    et cela pour toutes les tables qui ne sont pas [Présentation].

    De plus je te suggère la modification suivante puisque toutes tes tables [Suivi x] semblent identiques.

    Suivi
    No
    NumSuivi (entier long vaut : 1 à 5)
    Autres champs des tables suivi (date, ressenti, ..)

    Cela réduit le nombre de tables.`
    Et à part que d'économiser ton énergie, cela a les avantages suivants :
    • Permet de lister et d'imprimer tous les suivis très facilement.
    • Permet de trouver facilement les suivi qui sont incomplets par exemple.
    • mais SURTOUT permet d'ajouter et de supprimer des suivis SANS avoir (ou presque) à changer l'application.
      Tu peux même envisager que certaines présentations pourraient ne pas avoir le même nombre de suivis que d'autres en fonction des besoins.


    Si tu ne souhaites rien changer à ta conception actuelle (une table suivi <-> un formulaire), il faudra remplacer les sources des formulaires de saisie de [Suivi 1] à [Suivi 5] par des requêtes qui ne sélectionne que le numéro voulu (1 à 5).

    Sinon, tu peux utiliser l'astuce suivante :

    1. Créer un formulaire qui affiche toutes les données de [Suivi] sans distinction de numéro 1 à 5.
    2. Créer 5 champ textes nommés NumSuivi1 à NumSuivi5 à qui tu affectes la valeur correspondante à sa table (Propriété Source du Champ =IciLeNumeroDeSuivi).
      Donc tu obtiens 5 champs qui affichent les valeurs de 1 à 5.
      Une fois que cela marchera tu pourras rendre ces champs invisibles.
    3. Maintenant pour chacun des sous-formulaires Suivi, tu mets dans la propriété
      • champs Pères [No]; [NumSuivi1] (Le No est celui de Présentation, le 1 doit être remplacé par le numéro correspondant).
      • et champs Fils [NoPrésentation]; [NumSuivi]
      • Le formulaire utilisé par contre reste le formulaire qui affiche toutes les données de suivi.


    Et comme cela avec 1 seul formulaire de saisie et aucune ligne de code tu fais en sorte que Access affiche les données de Suivi1 dans une page, Suivi2 dans une autre page et ainsi de suite jusqu'à 5.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    chargée de mission
    Inscrit en
    août 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : chargée de mission
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2017
    Messages : 6
    Points : 1
    Points
    1

    Par défaut

    Merci pour les solutions proposées. Je vais me pencher la dessus demain voir un peu plus tard car je suis en congé la semaine prochaine.

Discussions similaires

  1. [AC-2007] Fonction rechercher dans Formulaire
    Par familledacp dans le forum IHM
    Réponses: 4
    Dernier message: 28/04/2013, 15h22
  2. [AC-2007] Champ lien hypertexte inopérant dans formulaire avec onglet
    Par gerardlbc dans le forum IHM
    Réponses: 1
    Dernier message: 16/04/2011, 09h05
  3. Recherche dans formulaire à onglets
    Par Tial dans le forum IHM
    Réponses: 9
    Dernier message: 07/03/2007, 13h41
  4. Réponses: 1
    Dernier message: 26/01/2007, 09h28
  5. Aucun affichage dans formulaire avec onglet
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 04/12/2006, 17h59

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