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] Formulaire de recherche polyvalent sur la base d'une requête enregistrée [Tutoriel]


Sujet :

Access

  1. #21
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Merci Claude, heureux oui on peut le dire !

    Par contre on dirait que la recherche sur chaine de caractères ne fonctionne pas avec les listes. Est ce que ça fonctionne chez toi ?

  2. #22
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Alors voila après quelques tentatives supplémentaires, j'ai fini par remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND ([T_VOIES.VOI_LIBCOMPFIL]=IIf([Formulaires]![F_ListeCommerces]![filtreCboAdresse1].[listIndex]=-1,(T_VOIES.VOI_LIBCOMPFIL) Like "*" & [Formulaires]![F_ListeCommerces]![filtreCboAdresse1] & "*",[Formulaires]![F_ListeCommerces]![filtreCboAdresse1]) Or [Formulaires]![F_ListeCommerces]![filtreCboAdresse1] Is Null)
    qui ne fonctionnait pas par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND ((T_VOIES.VOI_LIBCOMPFIL) Like IIf([Formulaires]![F_ListeCommerces]![filtreCboAdresse1].[ListIndex]=-1,"*" & [Formulaires]![F_ListeCommerces]![filtreCboAdresse1] & "*",[Formulaires]![F_ListeCommerces]![filtreCboAdresse1]))
    et ça fonctionne. Est ce que ça reste compatible avec le reste ? (zones de texte, de listes et cases à cocher)

    Merci

  3. #23
    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,

    Tu as raison, ma proposition ne fonctionne pas correctement pour les zones de liste !

    Par contre, je ne crois pas que la tienne ramène le cas où la colonne adresse1_FK est NULL.

    Je demande une trêve : à force de sécher, c’est comme si j’avais passé mon week-end dans l’essoreuse !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #24
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    OK pour une trêve, je te laisse finir de sécher alors !

    Tu as raison, mon dernier test ne renvoie pas les Null pour l'adresse, il commençait à se faire tard hier et j'ai un peu trop vite pris mes désirs pour des réalités !

    A plus tard

  5. #25
    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
    Nouvelle tentative

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Commerces.idCommerce_PK, T_Commerces.nomCommercial, T_Commerces.codeSiren, T_Commerces.numTiers, T_Commerces.raisonSociale, T_Commerces.numVoirie, T_VOIES.VOI_LIBCOMPFIL, T_VOIES.LDT_NOM, T_Commerces.adresse2, T_Commerces.preemption, T_Commerces.avisHygiene
    FROM T_VOIES RIGHT JOIN T_Commerces ON T_VOIES.ID_VOIE = T_Commerces.adresse1_FK
    WHERE (([nomCommercial] like "*" & [Formulaires]![F_ListeCommerces]![filtreTxtNomCommercial] & "*" Or [Formulaires]![F_ListeCommerces]![filtreTxtNomCommercial] Is Null) AND ([codeSiren] like  "*"  & [Formulaires]![F_ListeCommerces]![filtreTxtcodeSiren] &  "*" Or [Formulaires]![F_ListeCommerces]![filtreTxtcodeSiren] Is Null) AND ([numTiers]  like "*"  & [Formulaires]![F_ListeCommerces]![filtreTxtnumTiers] & "*" Or [Formulaires]![F_ListeCommerces]![filtreTxtnumTiers] Is Null) AND ([raisonSociale]  like  "*"  & [Formulaires]![F_ListeCommerces]![filtreTxtraisonSociale] & "*" Or [Formulaires]![F_ListeCommerces]![filtreTxtraisonSociale] Is Null) AND ([numVoirie] like "*"  & [Formulaires]![F_ListeCommerces]![filtreTxtnumVoirie] & "*" Or [Formulaires]![F_ListeCommerces]![filtreTxtnumVoirie] Is Null) AND (((T_VOIES.VOI_LIBCOMPFIL) Like IIf([Formulaires]![F_ListeCommerces]![filtreCboAdresse1].[ListIndex]=-1,"*" & [Formulaires]![F_ListeCommerces]![filtreCboAdresse1] & "*",[Formulaires]![F_ListeCommerces]![filtreCboAdresse1]) Or [Formulaires]![F_ListeCommerces]![filtreCboAdresse1] Is Null) AND ((T_VOIES.LDT_NOM) Like IIf([Formulaires]![F_ListeCommerces]![filtreCboSecteur].[ListIndex]=-1,"*" & [Formulaires]![F_ListeCommerces]![filtreCboSecteur] & "*",[Formulaires]![F_ListeCommerces]![filtreCbosecteur]) Or [Formulaires]![F_ListeCommerces]![filtreCboSecteur] Is Null)) AND ((T_Commerces.preemption)=IIf([Formulaires]![F_ListeCommerces]![BoxPreemption]=1,[preemption],[Formulaires]![F_ListeCommerces]![BoxPreemption])) AND ((T_Commerces.avisHygiene)=IIf([Formulaires]![F_ListeCommerces]![boxAvisHygiene]=1,[AvisHygiene],[Formulaires]![F_ListeCommerces]![boxAvisHygiene])));
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #26
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Ça maaaaarche !

    Tous les critères fonctionnent, peuvent être combinés entre eux avec en plus la recherche par chaine de caractères. Et les cases à cocher aussi.

    Un énorme merci à toi Claude

  7. #27
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Heu c'est encore moi...

    J'essaye d'ajouter le filtre sur les dates, mais problème habituel, je ne trouve pas la bonne façon d'écrire la requête pour avoir les Null au départ, puis le bon critère quand j'entre mes dates.
    Soit le filtre fonctionne mais je n'ai pas les Null au départ comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (debutArrete>=IIf(IsNull(Formulaires!F_ListeInstallations!debutFiltreDu),#1/1/1900#,Formulaires!F_ListeInstallations!debutFiltreDu));
    soit j'ai les Null mais le filtre me retourne ensuite toutes les dates comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (debutArrete>=IIf(Formulaires!F_ListeInstallations!debutFiltreDu,#1/1/1900#,Formulaires!F_ListeInstallations!debutFiltreDu) Or Formulaires!F_ListeInstallations!debutFiltreDu Is Null);
    Quel pourrait être la bonne façon d'écrire la requête ?

    Merci

  8. #28
    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


    Hâtez-vous lentement, et sans perdre courage,
    Vingt fois sur le métier remettez votre ouvrage,
    Polissez-le sans cesse, et le repolissez,
    Ajoutez quelquefois, et souvent effacez.

    Boileau... jusqu'à la lie (l'hallali) ♫ La, la, li ♫


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

  9. #29
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Absolument, qui cherche trouve parait-il, mais il semblerait que pas toujours parce que ça fait des heures que je suis dessus et rien à faire...

    L'évidence doit être sous mon nez mais je ne la vois pas.

    EDIT : toujours pas trouvé, il y a ceci qui fonctionne pour le filtreDu mais qui me parait plutot bizarre, et de plus quand j'ajoute quelque chose de similaire pour le filtreAu plus rien ne fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    And (debutArrete>=IIf(Formulaires!F_ListeInstallations!debutFiltreDu,Formulaires!F_ListeInstallations!debutFiltreDu,Formulaires!F_ListeInstallations!debutFiltreDu) or 
    Formulaires!F_ListeInstallations!debutFiltreDu is Null));

  10. #30
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bon voila je pense avoir trouvé, si ce n'est "la" solution, "une" solution qui fonctionne. Pour la partie filtreDU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (debutArrete>=IIf(IsNull(Formulaires!F_ListeInstallations!debutFiltreDu),#1/1/1900#,Formulaires!F_ListeInstallations!debutFiltreDu) Or Formulaires!F_ListeInstallations!debutFiltreDu Is Null)
    suivie de, pour la partie filtreAu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (debutArrete<=IIf(IsNull(Formulaires!F_ListeInstallations!debutFiltreAu),#1/1/2100#,Formulaires!F_ListeInstallations!debutFiltreAu) Or Formulaires!F_ListeInstallations!debutFiltreAu Is Null));
    Je ne sais pas si c'est comme ça qu'il fallait faire mais en tous cas ça fonctionne. Allez maintenant 2 aspro et dodo

  11. #31
    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
    "une" solution qui fonctionne
    et pour rester dans la même BD,



    je dirais même plus : "une" solution qui fonctionne !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #32
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bonjour Claude,

    Si par hasard tu passes par la, j'aimerais savoir s'il est possible d'entrer pour une valeur numérique quelque chose du genre >10 ou <100 par exemple.

    Voila c'est tout, à bientôt.

  13. #33
    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,

    Ça, c'est tout facile ! C'est comme l'exemple des dates « Du » et « Au », mais sans délimiteur (puisque numérique) ni de reformatage.

    Donc dans le filtre l'utilisateur saisit un nombre minimum (et/ou maximum) et dans la requête tu testes >= (ou <=) à ce nombre.

    Meilleurs vœux pour 2015.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  14. #34
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Il faut donc bien deux zones de texte pour faire ça ?

    Meilleurs vœux pour 2015 également

  15. #35
    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,

    Ben oui !
    L'une pour la limite inférieure, l'autre pour la limite supérieure.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #36
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bonjour Claude,

    Tu dis sans délimiteur ni reformatage, pour le délimiteur il faut que je mette 0 sinon ça ne marche pas, pour le reformatage que veux-tu dire ?

    Il y a ceci qui a l'air de fonctionner, peux-tu me corriger si besoin est ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (surface>=IIf(IsNull(Formulaires!F_RechercheInstallations!filtretxtSurface),0,Formulaires!F_RechercheInstallations!filtretxtSurface) Or Formulaires!F_RechercheInstallations!filtretxtSurface Is Null)
    Merci

  17. #37
    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
    Délimiteur = les signes que l'on utilise pour signaler le début et la fin d'une valeur.

    Exemple des croisillons pour une date #mm/dd/aa#
    des apostrophes droites pour du texte 'MonTexte' ou des doubles-quotes "MonTexte"
    et rien pour du numérique.

    et quand c'est une date, il faut parfois la reformater à la sauce anglaise mois/jour/année.

    Ton code est bon, ce n'est donc pas étonnant qu'il fonctionne !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #38
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Merci pour les explications !

  19. #39
    Membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    j'ai suivi le tuto suivant afin de rajouter [Tous] à une liste déroulante. Par contre, comment faire correspondre ce [Tous] à "*" dans une requête ?

    J'ai essayé le code suivant sans succès dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme VraiFaux([Formulaires]![Import]![Liste_déroulante_Ligne]="[Tous]";"*";[Formulaires]![Import]![Liste_déroulante_Ligne])
    Avez vous des idées ?

    Par avance, merci.

  20. #40
    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,


    tuto suivant
    ???

    Difficile de t'aider sans voir les propriétés de ta zone de liste.

    Peux-tu poster un échantillon de ta base dans une version compatible Access2000 ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. [Toutes versions] [Tutoriel] Un formulaire de recherche basé sur la technique du père/fils
    Par ClaudeLELOUP dans le forum Access
    Réponses: 20
    Dernier message: 12/04/2019, 08h48
  2. Réponses: 5
    Dernier message: 22/05/2007, 11h54
  3. Réponses: 3
    Dernier message: 21/09/2006, 11h59

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