Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaire de recherche

1 réponse
Avatar
phdu
bonjour a tous

J'ai cr=E9=E9 une base pour g=E9rer tous les cv que je re=E7ois.

je voudrais cr=E9er un formulaire pour rechercher et=20
afficher les personnes en fonction de certains crit=E8res=20
(nom, age, sexe, formation, dipl=F4me etc...).

La personne doit avoir la possibilit=E9 de renseigner un ou=20
plusieurs champs et la liste des personnes r=E9pondant =E0 ces=20
crit=E8res s'affichent dans un sous formulaire.

Merci d'avance pour votre aide

Cordialement

Philippe

1 réponse

Avatar
Xavier HUE
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.