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 :

Ouverture d'un formulaire après une recherche


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Ouverture d'un formulaire après une recherche
    Bonjour,

    Je suis débutant pour tout ce qui concerne access. Je connaissais un tout petit peu les langages associés par le biais de pages PHP et je me suis mis à access la semaine dernière.

    J'ai crée une base de donnée pour classer des fiches. Chacune d'elle porte un nom, un numéro et des mots clef.

    J'ai fait un moteur de recherche sur la base de celui proposé dans le tutoriel (bravo aux rédacteurs de ces tutos, ils sont super bien fait!). Il s'agit simplement d'un champ qu'on remplit et qui est ensuite comparé à chaque nom, numéro et mot clef de la base.

    Tout cela fonctionne très bien, une liste de résultat s'affiche. C'est la que ca se complique. Je voudrais qu'en cliquant sur une fiche ca m'ouvre un formulaire à la bonne page.

    Je m'explique. J'ai construit un formulaire qui permet de faire défiler toutes les fiches. J'aimerais qu'en cliquant dans la liste de mes réponses je puisse ouvrir ce formulaire en affichant la bonne fiche.

    Exemple: dans mes résultats j'ai les fiches 3, 67 et 183. Je clique sur la ligne du milieu (67), et je voudrais voir s'afficher le formulaire des fiches s'ouvrant directement sur la numéro 67 et non sur la première.

    J'ai regardé dans les tutoriels, il y a bien quelque chose pour choisir le bon formulaire, mais là je sais quel formulaire je veux, le problème se situe au niveau de la page.

    Pour l'instant je suis parti avec une macro. J'ai demandé que sur un double clique quelque part dans la liste des résultats ca active une macro. DAns cette macro j'ai utilisé "ouverture formulaire". Je choisi le formulaire dans lequel il y a toutes les fiches référencées. Je voudrais trier à l'aide d'un filtre pour ne retenir que celle qui correspond bien à celle sur laquelle j'ai cliqué. Il me fraudrait donc pouvoir récupérer le numéro de la fiche sur laquelle je clique. C'est la que je coince,je ne sais pas comment faire...

    Quelqu'un peut-il m'indiquer la marche à suivre?

    Merci d'avance

    Cyrille

  2. #2
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Bonjour,

    Pour filtrer un formulaire, regarde avec la fonction Filter et FilterOn (F1).

    Pour récupérer le numéro de la fiche:
    Si tu travailles dans le code du formulaire qui contient le controle porteur du numéro (disons num_fiche)
    Bon courage

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 222
    Points
    222
    Par défaut
    Dans ton formulaire d'affichage des fiches, ta source controle, tu met un critère du genre :
    Comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![nomFormRecherche]![NomControleN°Fiche]
    Access va prendre le N° fiche qu'il y a dans le controle actif

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses. En fait je ne suis plus dans le meme formulaire avant et après le clic. Donc pour Me.Numéro_FEM ca ne marche pas.

    J'ai fait 3 captures d'écrant (c'est des petits Gif):

    Mes fiches s'appelent FEM. Elles sont dans le formulaire FEM1 qui permet de visualiser les infos fiche par fiche.
    Recherche est le formulaire dans lequel j'ai une liste lst_resultat qui affiche les réponses suite à ma recherche.
    Voici un exemple:

    Par exemple je veux cliquer sur la première ligne. J'attends que FEM1 s'ouvre sur les données de la fiche 84.

    Pour cela, j'ai mis une macro qui s'active sur un clic, dont voici les infos:


    Pour mon filtre, je veux que Numéro_FEM soit égal au numéro FEM de la fiche sur laquelle je clique. J'ai essayé ce que vous m'avez proposé mais sans résultat. J'ai pas mal bidouillé, mais ca n'a pas marché. Ca doit juste etre une erreur de dénomination que je ne trouve pas...

    Merci

    Cyrille

  5. #5
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Les macros, j'évite ! De toutes façon, Access te les traduit en VB derriere.

    C'est peut etre une histoire de colonne. Il faut bien dire a Access dans quelle colonne aller chercher la donnée.
    Column(0) donne la valeur de la 1er colonne
    Column(1) donne la valeur de la 2e colonne

    Si tu n'arrives pas avec la méthode de Bruno (que je n'utilise pas non plus personellement), dans l'evenement double_click de ta zone de liste, tu mets le code VB suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub lst_resultat_DblClick(Cancel As Integer)
    Docmd.OpenForm "FEM1",,, "[Numéro_FEM]='" & me.lst_resultat.column(0) & "'"
    End Sub

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour la proposition!
    Je viens d'essayer ce que tu me proposes. Je comprends l'idée générale, c'est vrai que nulle part je ne disais dans quelle colonne .

    Dans le code que tu as écrit, le logiciel m'indique qu'il manque une parenthese fermante, un crochet ou une barre verticale.

  7. #7
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Beuhhh, je suis pas du tout d'accord avec le logiciel. Il ne me dit rien chez moi.

    L'erreur est signalée a l'éxecution du code ou lorsque tu édites ton code ???

    Vérifie bien chez toi, ca devrait marcher

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Ca fait bientot 3h que je suis dessus
    Ca ne bugge pas à la compilation, mais par contre, quand j'exécute ca me marque:
    "Erreur d'exécution '2501':
    L'action OpenForm a été annulée"

    Puis je clique sur déboggage et ca me surligne cette ligne en jaune:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "FEM1", , , "[Numéro_FEM]='" & Me.lst_resultat.Column(1) & "'"
    Me.lst_resultat a la bonne valeur, je l'ai vérifié. C'est assez bizarre...
    En début d'apres midi il m'indiquait une erreur à la compilation. Maintenant, pour le meme code ca compile mais ca foire toujours...

    En tout cas merci de ton aide!

  9. #9
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Un petit detail sur la mise en forme de tes posts. Quand tu as du code utilise la balise CODE (bouton #). Si tu as du code SQL, mets CODE=SQL entre les crochets, c'est plus agreable a lire. Merci !

    Teste ce que le code lit dans ta zone de liste avec un message.
    Juste avant ta ligne qui bug, essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Me.lst_resultat.Column(1)
    Qu'est-ce que ça te donne? Ce qu'il est censé trouver??

    Vérifie les types de données ! Si le format que tu lis sur la zone de liste est différent de celui de ta table, je ne serais effectivement pas étonné qu'il y ait une erreur.

    Cherche dans le forum à '2501', tu trouveras surement une réponse a ta question. Quand on dévute, on trouve toujours qq1 qui a galéré sur le meme probleme. J'y trouve moi-meme réponse a 90% de mes questions.

  10. #10
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui, le type de donneé correspond (enfin, je crois )
    Numéro_FEM est bien du type numérique et prends la bonne valeur. C'est ma clef primaire pour la table.
    Je vais essayer d'autres pistes, au pire j'abandonne cette idée meme si elle serait on ne peut plus utile.
    Merci de t'être penché sur mon cas pathologique.

    Bonne soirée

    Cyrille

  11. #11
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Il n'y a pas de raison d'abandonner, ça ne doit tenir qu'à un détail.

    Essaye un peu comme ca, si c'est un champ numérique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "FEM1", , , "[Numéro_FEM]=" & Me.lst_resultat.Column(1)

  12. #12
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je .. Je... J'en pleure... CA MARCHE!!


    Merci beaucoup, c'était la bonne solution!

    Il va falloir que je reprenne le code depuis les bases, ca a l'air pointu la façon de placer les "

    C'est super sympa de ta part d'avoir cherché à m'aider, merci encore!

    Cyrille

  13. #13
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    N'oublie pas le tag [Resolu], ca évitera à une bonne ame de se retaper tout l'historique pour réoudre qqc de deja résolu

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

Discussions similaires

  1. Effacer des données dans un formulaire après une recherche
    Par PFX dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 09/01/2008, 11h00
  2. ouverture d'un formulaire après avoir coché une case
    Par bourguignon21 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/07/2007, 15h56
  3. Création d'un etat apres une recherche
    Par jojo57 dans le forum Access
    Réponses: 10
    Dernier message: 15/05/2006, 10h27
  4. Récupérer les données après une recherche
    Par cdumas dans le forum Access
    Réponses: 7
    Dernier message: 04/05/2006, 12h09
  5. raffraichir un formulaire après une recherche
    Par ormoy28 dans le forum IHM
    Réponses: 10
    Dernier message: 10/02/2006, 10h53

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