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 :

Probléme formulaire de recherche multicritére


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Probléme formulaire de recherche multicritére
    Bonjour à tous,

    Je vous sollicite car j'ai un gros problème je suis actuellement en stage en entreprise dans une mairie et ma mission de stage est de faire une base de donnée relationnelle regroupant toutes les prises afin de savoir quel poste est branché dessus.

    Alors pour faire la base de donnée pas de problème.
    La base comporte 4 tables :
    • Les services (code service, Nom de service)
    • Les switchs (code switch, Nom de switch)
    • Les type de prises (code prise, Type de prise)
    • Prises (num prise, code service, code switch, code prises,num de port, nom du pc, num de tel, nom utilisateur, autre)


    Le probléme maintenant c'est pour la réalisation du formulaire avec un sous formulaire a l'intérieur, je souhaiterai faire un formulaire de recherche multicritère pour que l'on puisse rechercher par services, par switch ou par type de prises.

    J'ai suivit le tuto http://jeannot45.developpez.com/arti...multicriteres/ à la lettre mais impossible de lier les liste déroulante.

    Je joint un screen de la base et du formulaire.

    Merci d'avance de m'aider car c'est un projet que je doit rendre la semaine prochaine.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Quel est le problème ? Les listes dépendantes n'affichent pas d'info ? Elles affichent des données erronnées ?

    Personnellement pour simplifier, dans un premier temps j'enlèverai le Union et je testerai seulement la partie de sélection.

    A+

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Quel est le problème ? Les listes dépendantes n'affichent pas d'info ? Elles affichent des données erronnées ?
    A+
    Le problème en faite est que je ne peut faire de choix dans les liste j'ai seulement "---Tous---" qui s'affiche.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Ok donc ton problème vient à priori du SQL de sélection.

    Peux-tu le poster ?

    A+

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Ok donc ton problème vient à priori du SQL de sélection.

    Peux-tu le poster ?

    A+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Distinct Services.[Code Service], Services.[Noms des services] 
    FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
    WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
    AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
    ORDER BY Services.[Noms des services] 
    UNION SELECT 0, " ---Tous---" FROM Services;
    Voila le SQL.
    Je ne sait pas d'ou peut provenir l'erreur?
    Veut tu que je t'envoi la base de donnée et le formulaire que j'ai commencé a faire?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Dans l'immédiat copie

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Distinct Services.[Code Service], Services.[Noms des services] 
    FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
    WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
    AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
    ORDER BY Services.[Noms des services]

    dans l'éditeur de requête puis passe en mode 'conception' cela devrait te permettre de localiser le problème.

    Pour voir d'où cela vient commence par enlever les critères => tu dois avoir des données.
    Ensuite ajoute un seul critère => tu dois avoir des données
    Ensuite ajoute un autre critère => tu dois avoir des données

    et ainsi de suite.

    A+

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci de t'on aide!
    Je n'y croyait plus ca fonctionne!!

    Maintenant comment fait ton pour afficher le résultat dans le sous formulaire?
    Quand j'ouvre mon formulaire j'ai une boite qui s'affiche "Entrer les valeur des paramètre"

    Que doit-je faire?
    Fichiers attachés Fichiers attachés

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Il faut que tu ai un champ [ID_Service] dans ton formulaire [RECH PRISE]
    ou
    vérifie qu'il ne faille pas remplacer [Formulaires] par [Forms].

    A+

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci de ton aide encore une fois!

    Le problème je crois vient de la requette, le sous formulaire je voudrai qu'il affiche :

    • Num Prises
    • Services
    • Switch
    • Types de prise


    voici le SQL de ma requette:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Prises.[Numéro de port], Services.[Noms des services], Switch.[Nom du switch], [Types de prises].[Types de prises]
    FROM [Types de prises] 
    INNER JOIN (Switch INNER JOIN (Services INNER JOIN Prises 
    ON Services.[Code Service] = Prises.[Code Services]) 
    ON Switch.[Code Switch] = Prises.[Code Switch]) 
    ON [Types de prises].[Code Prises] = Prises.[Code Prises]
    WHERE (((Prises.[Code Services])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Services]=0,[Prises].[Code Services],[Formulaires]![PRISE RESEAU MODEL]![LD_Services])) 
    AND ((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
    AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises])));
    Je ne sais pas d'où viens l'erreur?

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    As-tu bien un champ [LD_Service] dans ton formulaire [RECH PRISE] ?

    Ce formulaires est-il bien ouvert au moment de l'appel ?

    As-tu essayé en remplacant [Formulaires] par [Forms], car normalement en SQL on voit les termes en anglais.

    A+

  11. #11
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci j'ai réussi à me débrouiller ça marche!!

    Maintenant j'ai une interrogation, ma première liste déroulante "service" et normalement triée par "noms de services" alphabétiquement
    voici le SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT Services.[Code Service], Services.[Noms des services] 
    FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
    WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
    AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
    ORDER BY Services.[Noms des services] UNION SELECT 0, " ---Tous---"  FROM Services;
    Mais la elle est afficher trier par le IDServices comment puis je faire pour quel se trie?

    Et mon autre interrogation se porte sur le fait que j'ai l'impression que le formulaire est en mode ecriture c'est a dire que je peu écrire dedans cela me change ma base de donnée. comment faire pour qu'il soit uniquement un formulaire de recherche?
    Faut t'il supprimer la barre lateral gauche.

    Je met a disposition les screen.

    merci d'avance
    Fichiers attachés Fichiers attachés

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Bonjour.

    Pour trier une réquête de type "Union", il faut placer la clause ORDER BY à la fin en indiquant l'alias du champ. Dans ton exemple ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT Services.[Code Service], Services.[Noms des services] AS [Nom]
    FROM Services INNER JOIN Prises ON Services.[Code Service] = Prises.[Code Services] 
    WHERE (((Prises.[Code Switch])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Switch]=0,[Prises].[Code Switch],[Formulaires]![PRISE RESEAU MODEL]![LD_Switch])) 
    AND ((Prises.[Code Prises])=IIf([Formulaires]![PRISE RESEAU MODEL]![LD_Prises]=0,[Prises].[Code Prises],[Formulaires]![PRISE RESEAU MODEL]![LD_Prises]))) 
     
    UNION 
     
    SELECT 0, " ---Tous---"  AS [Nom] FROM Services
     
    ORDER BY [Nom];

  13. #13
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci bien ca fonctionne!!

    Tu ne sait pas comment faire pour que le formulaire soit utiliser que pour la recherche?

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Va voir en mode Création dans les propriétés de ton formulaire >> Onglet Données.

    @+

  15. #15
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    OK merci!
    Impeccable çà fonctionne.

    Tu va peut être savoir comment faire le compte des lignes qui s'affiche dans une zone liste?

    comme dans le tuto sauf que moi je n'ai pas fais de pied de sous formulaire suis je obliger dans faire un?

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Facile !

    Si tu veux récupérer la valeur dans VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ZonedeListe.ListCount-1
    Si tu veux l'afficher dans un champ du formulaire, tu places dans la propriété ControlSource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =If(ZonedeListe.ListCount=0;0;ZonedeListe.ListCount-1)

  17. #17
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Super merci t'ou fonctionne.
    Je suis soulager merci beaucoup!!!

    Par contre derniére petite question y a t'il un moyen de transformer le formulaire en .exe?

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    En .exe ??
    Là je n'ai pas de réponse...

    Tu peux utiliser le format .mde si ce que tu veux c'est protéger ton code.
    Par contre si l'objectif c'est de créer un exécutable qui ne nécessite pas d'avoir Access installé sur le PC de l'utilisateur, je ne peux pas t'aider. Je ne sais même pas si c'est possible...

  19. #19
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Il n'est pas possible de créer un .exe avec Access. Le plus approchant est :
    • un .mde (c-à-d une BD sans le code source)
    • et un runtime Access (c-à-d un programme qui te permet d'utiliser une base Access sans installer un vrai Access).


    Attention une fois converti en .mde on ne peut pas facilement revenir au .mdb. Donc il est impératif de conserver une version .mdb de ton application.

    A+

Discussions similaires

  1. Problème formulaire de recherche
    Par Kyrha dans le forum Access
    Réponses: 5
    Dernier message: 24/04/2012, 02h44
  2. Réponses: 10
    Dernier message: 11/05/2008, 18h49
  3. Formulaire de recherche multicritère Access 2003
    Par Mimi64 dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 12h21
  4. Formulaire de recherche multicritères
    Par dolf13 dans le forum Langage
    Réponses: 10
    Dernier message: 20/06/2006, 23h24
  5. Formulaire de recherche multicritères
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 09h32

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