formulaire de recherche

Le
phdu
bonjour a tous

J'ai cr une base pour grer tous les cv que je reois.

je voudrais crer un formulaire pour rechercher et
afficher les personnes en fonction de certains critres
(nom, age, sexe, formation, diplme etc).

La personne doit avoir la possibilit de renseigner un ou
plusieurs champs et la liste des personnes rpondant ces
critres s'affichent dans un sous formulaire.

Merci d'avance pour votre aide

Cordialement

Philippe
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier HUE
Le #5044031
Bonjour phdu,

Tu peux essayer:
1) Construire le formulaire de recherche en insérant des
TextBox (indépendant) en lieu et place de chacun de tes
critères possibles
2) Lorsque l'utilisateur clique sur le
bouton "Rechercher"
- Vérifier les valeurs saisie dans les TextBox, de
façon à le remplir par le caractère Etoile (*) si rien
n'est saisi.
- Lancer l'ouverture du formulaire affichant le
résultat, ou si ce dernier doit être affiché dans un sous-
formulaire, faire un requery du sous-formulaire.

Pour des recherches simples, le "truc" consiste à créer la
requête devant retourner les enregistrements comme ci-
dessous:

SELECT .... FROM ...
WHERE ChampNom LIKE Forms![FormulaireRecherche]!
[TextBoxNom] AND ChampAge LIKE Forms![FormulaireRecherche]!
[TextBoxAge] ...

L'opérateur LIKE permet de faire des recherches sur des
portions de chaine de caractères. Par exemple LIKE "BAC*"
retournera "BAC +1, BAC +2, BAC, Baccalauréat"...

L'utilisateur devra donc saisir des critères
comme "BAC*", "DUPOND*" ...

Si tu souhaites intégrer des critères comme AGE compris
entre 25 et 38, ca devient plus complexe.
Il faut créer le formulaire avec tout les éléments
permettant à l'utilisateur de saisir ces critères, puis,
sous VBA, construire dynamiquement la clause WHERE qui
devrait être appliquée à une requête. A titre d'exemple,
pour l'age:
- Une liste déroulante permettant de
choisir "Egal", "Inférieur", "Supérieur", "Compris entre"
(la liste de valeur
étant "="; "Egale"; "<"; "Inférieur"; ">"; "Superieur"; "C"
; "Compris entre")
- Deux zone de saisie Age1, Age2 (cette dernière ne sera
utilisé que si on choisi le critère "Compris entre")

La construction de la chaine de texte ressemblerait à:

If ListeAgeOperateur.Value = "C" Then
SQLWhere = "ChampAge Between " & Age1.Value & " AND "
& Age2.Value
Else
SQLWhere = "ChampAge " & ListeAgeOperateur.Value
& " " & Age1.Value
End If

C'est faisable...
Compliqué et lourd mais faisable.

Espérant t'avoir éclairé.
Cordialement.
Publicité
Poster une réponse
Anonyme