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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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.
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.