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

Contribuez Discussion :

[Sources] Formulaire de recherche multicritères


Sujet :

Contribuez

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 26
    Points : 38
    Points
    38
    Par défaut [Sources] Formulaire de recherche multicritères
    Bonjour,

    Je vous propose un formulaire de recherche multicritères qui ressemble beaucoup à la grille de création de requête, non seulement dans sa présentation, mais également dans son utilisation.

    Les recherches peuvent s'effectuer sur n'importe quel champ d'une table ou requête source et il est bien entendu possible d'utiliser les caractères génériques '*' ou '?' dans les recherches. Le formulaire se présentera comme ceci:



    On voit qu'il y a 4 critères possibles dans le formulaire exemple ci-dessus, mais ce nombre est très facilement modulable, il suffit de modifier le dimensionnement de 2 variables de type tableaux.

    Pour utiliser ce formulaire dans votre application, procédez comme suit:

    1. Ouvrez votre application et importer les objets suivants:
      - Tables: USYS_ListeChamps
      - Formulaires: Frm_Recherche, SF_Filtre
      - Requêtes: R_ListeChampsPourListeDéroulante_FrmRecherche

    2. Ouvrez la table USYS_ListeChamps et effacez tous les enregistrements qu'elle contient. Ensuite insérez de nouveaux enregistrements en fonction des champs de la table ou requête qui servira de source au formulaire de recherche

      - [N°] est libre, mais doit être unique.
      PS: Il est également possible lors de la création de mettre le type de ce champ sur NuméroAuto au lieu de Numérique/entier long si vous ne désirez pas entrer à chaque fois le numéro. J'ai pour ma part choisi ce type 'Numérique' afin de pouvoir librement choisir mes numéros, de façon par exemple à utiliser cette colonne comme ordre de tri dans la liste déroulante qui affichera la liste de ces champs


      - [FieldName] doit correspondre aux noms des champs tels qu'ils figurent dans la table source ( dans mon exemple 'Clients').
      IMPORTANT: Si un nom de champ possède un espace, par exemple "Code postal", il faut le mettre entre crochet, comme ceci: [Code postal]

      Il est également possible d'introduire des expressions qui pourront servir pour affiner une recherche.
      Par exemple ma table "Clients" possède un champ "Date naissance" de type jj.mm.aaaa. Mais je souhaite que l'utilisateur puisse faire des recherches uniquement sur le mois ou l'année de cette date de naissance. Il suffit donc d'introduire les expressions suivantes: Month([Date Naissance]) et Year([Date Naissance]).
      Vous pouvez ainsi créer n'importe quelle expression, pour autant quelles soient conformes au langage SQL.
      On pourrait par exemple également utiliser les expressions suivantes:
      - Left(Adresse,2) / 2 premiers caractères du champ Adresse
      - Len (Téléphone) / longueur du champ Téléphone


      - [Type] contient une constante de type DAO DataTypeEnum qui correspond au type du champ. Les valeurs possibles sont:

      'DataTypeEnum DAO acceptées dans BuildCriteria
      1 = Oui/Non (dbBoolean)
      2 = octet (dbByte)
      3 = entier (dbInteger)
      4 = entier long (dbLong)
      5 = monétaire (dbCurrency)
      6 = réel simple (dbSingle)
      7 = réel double (dbDouble)
      8 = date (dbDate)
      9 = binaire (dbBinary)
      10 = texte (dbText)
      11 = binaire 2 dbLongBinary)
      12 = mémo (dbMemo)
      15 = GUID (dbGUID)
      16 = numérique HP (dbBigInt)
      17 = binaire 2 (dbVarBinary)
      18 = texte (dbChar)
      19 = numérique (dbNumeric)
      20 = décimal (dbDecimal)
      21 = flottant (dbFloat)
      22 = heure (dbTime)
      23 = heure (dbTimeStamp)

      Le champ de la table est sous forme de liste déroulante, avec tous les types possibles à disposition. Cela facilite l'introduction des données


      -[Description] contient le texte qui sera affiché dans la liste déroulante du formulaire de recherche. Par exemple "Mois de naissance" est plus parlant pour l'utilisateur que "Month([Date Naissance])


    3. Ouvrez le formulaire Frm_Recherche en mode création et allez dans son code. Adapter la variable vSource à la table ou requête source.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      ' Variables à modifier
      Dim expressionET(1 To 4)  ' A dimensionner selon le nombre maximum de critères
      Dim expressionOU(1 To 4)  ' A dimensionner selon le nombre maximum de critères
      Const vSource = "Clients" ' Nom de la table ou requête source du formulaire de recherche
    4. Contrôler que la référence à la bibliothèque Microsoft DAO soit référencée dans votre application.


    Le code SQL de la recherche est enregistré à chaque fois dans la requête "filtre" qui est créée au cas où elle n'existe pas encore. Ainsi il suffit de prendre cette requête comme source pour utiliser les résultats de la recherche.

    Si vous avez des difficultés pour comprendre l'utiisation ou le fonctionnement de ce formulaire une aide est disponible ici formulaire de recherche multicritère
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [MySQL] Formulaire de Recherche Multicritères
    Par Meewix dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/11/2006, 22h27
  2. Réponses: 3
    Dernier message: 21/09/2006, 12h59
  3. Formulaire de recherche multicritère Access 2003
    Par Mimi64 dans le forum Access
    Réponses: 1
    Dernier message: 19/07/2006, 13h21
  4. Formulaire de recherche multicritères
    Par dolf13 dans le forum Langage
    Réponses: 10
    Dernier message: 21/06/2006, 00h24
  5. Formulaire de recherche multicritères
    Par Michel DELAVAL dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 10h32

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