Bonjour,
Je veux que l'utilisateur débutant de mon formulaire puisse demander d'afficher certains enregistrements compris entre deux dates, directement sous le formulaire, genre calendrier SNCF.
COMMENT FAIRE ?
Bonjour,
Je veux que l'utilisateur débutant de mon formulaire puisse demander d'afficher certains enregistrements compris entre deux dates, directement sous le formulaire, genre calendrier SNCF.
COMMENT FAIRE ?
Bonjour,
Peux tu donner davantage d'explications sur la structure de ta base.
A première vue, un sous formulaire devrait répondre à ton formulaire. Tu pourrais t'inspirer du formulaire de recherche consultable ici
Bonne lecture
Waou ça m'a l'air assez puissant cette "petite" recherche multi-critères.. je crois que ça va me servir pour pas mal de choses en fait...
Mais j'en ai pour un moment (débutante en SQL)
Merci pour ton aide Jeannot!
Heureux que le sujet transmis t'intéresse. Tu trouveras des complements à ce type de formulaire ici.
Cependant, si ton post a trouvé satisfaction, pense à cliqué sur le bouton placé sous le dernier post.
Bon courage et à bientot sur le forum
J'ai un souci,
C'est qu'ils ne parlent pas de recherche par date dans cette recherche multi-critères, or, je pense que c'est un petit peu spécifique puisqu'il ne s'agit pas de rentrer 1 valeur ou un début de mot mais d'encadrer avec 2 valeurs exactes (2 dates).
Une fois que j'ai mes deux combo (si c'est bien ce que je dois utiliser) comment est-ce que je dis à la machine qu'ils marquent la date de début et la date de fin de ma recherche?
Euh, Jeannot...
Dans le tutoriel il est dit de générer une expression SQL pour indiquer la source de ma combobox, ce que je n'arrive tout bonnement pas à faire.
J'ai le générateur de code, de macro et d'expression mais même en mode générateur d'expression je ne sais pas comment entrer mon select, group by, order by...
Eh oui.. .débutante
bon...soir
si tu veux qu'on t'aide GOTO 1ere demande de Jeannot45
un peu plus d'infor sur ta base
genre
j'ai une table .......struture
j'ai fait une requête sur cette table
là par exemple on pourrait te dire sous les champs Date1 et Date2
de ta requête
à critère tu mets ex: >[Formulaires]![MonFormulaire]![MonNomombo1]
et sous l'autre <[Formulaires]![MonFormulaire]![MonNomombo2]
dans le QBE ton SQL se fera tout seul
enfin des choses comme ça qui devrait marcher
allez à bientôt
Bonjour,
EN fait je ne sais pas ce que je peux dire sur la table qui pourrait aider?
J'essaie :
J'ai une requête qui me sort le dernier mouvement de chaque personne (un mouvement = déplacement d'une personne d'une ville à une autre dans mon cas) avec la date, le numéro de mouvement, le nom et prénom, la provenance et la destination.
Et mon but est d'avoir un formulaire qui permette facilement à l'utilisateur de sortir tous les mouvements entre telle et telle date.
Je suis en train d'apprendre à faire une recherche multi-critères (sur le nom et prénom, provenance, destination... ) grâce au lien que m'a passé Jeannot mais j'ai un souci : le formulaire ne me renvoie aucune donnée, une fois les critères rentrés.
Soit j'ai toutes les données (quand j'ouvre le formulaire) Soit je n'ai plus rien (dès que je coche un critère à entrer)
Euh qu'est-ce que c'est comme champ MonNomombo1?
>[Formulaires]![MonFormulaire]![MonNomombo1]
Une fois que j'ai mes deux combo (si c'est bien ce que je dois utiliser) comment est-ce que je dis à la machine qu'ils marquent la date de début et la date de fin de ma recherche?en l'occurence c'est le champ "que tu appelles combo" qui se troouve sur ton formulaire et ou tu doit avoir saisie la date de début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part >[Formulaires]![MonFormulaire]![MonNomombo1]
tout cela a mettre sous le champ date de la requête. puis pour dire à la machine de trier - bouton sur ton formulaire qui lance via macro ou VBA ta requête.
je sais ce n'est pas facile - si tu as des difficultés encore, à ce stade essaie de nous poster une copie de ta base
bon courage
Très bien ! j'ai l'impression que grâce à vous je suis en bonne voie!!!
Dites-moi, est-ce que vous auriez une idée de la raison pour laquelle le fait de rentrer les critères de recherche ne me renvoie pas de données?
Je me suis servie de ce tutoriel ci : http://cafeine.developpez.com/access...echerchemulti/
Je pense que mon souci est là-dedans :
Bref au coeur de la requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub RefreshQuery() Dim SQL As String Dim SQLWhere As String SQL = "SELECT [Dernier mouvement],[Date],[Provenance],[Nom et Prénom],[Destination], [Type de mouvement] FROM [Rqt_FrmRecherche] Where [Rqt_FrmRecherche]![Dernier mouvement] <> 0 " If Me.chkPatient Then If Me.txtRechPatient <> Null Then SQL = SQL & "And [Rqt_FrmRecherche]![Nom et Prénom] like '*" & Me.txtRechPatient & "*' " End If End If If Me.chkProv Then SQL = SQL & "And [Rqt_FrmRecherche]![Provenance] = '" & Me.cmbRechProv & "' " End If If Me.chkDest Then SQL = SQL & "And [Rqt_FrmRecherche]![Destination] = '" & Me.cmbRechDest & "' " End If If Me.chkMvt Then SQL = SQL & "And [Rqt_FrmRecherche]![Type de mouvement] = '" & Me.cmbRechMvt & "' " End If SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & ";" Me.lblStats.Caption = DCount("*", "Rqt_FrmRecherche", SQLWhere) & " / " & DCount("*", "Rqt_FrmRecherche") Me.lstResults.RowSource = SQL Me.lstResults.Requery
Bonjour!
Alors, j'ai réussi à faire fonctionner ma recherche multi-critères!!!!
Par contre, comment faire ma recherche par date?
J'ai créé deux chkbox et deux zones de texte pour y rentrer un date mini (en quelque sorte ) et une date maxi afin d'encadrer la date des résultats que je veux (par ex entre le 01/04/2008 et le 30/04/2008)
Mais je ne sais pas où entrer les fonctions:
txtDate1<= [Rqt_FrmRecherche].[Date]
txtDate2 >= [Rqt_FrmRecherche].[Date]
si j'ai bien compris !!
1)contrairement à ce que je pensais dans ta table reprise dans ta requête tu n'as qu'un seul champ [date]
au passage un conseil - Date est un mot réservé d'access - il est très fortement déconseillé d'utiliser des mots réservés d'un logiciel pour nommer des champs, des variables ou des constantes...tu risques d'avoir un jour des résultats incohérents difficillement détectables.
2) tu as créé 2 champs sur ton formulaire enregistrant la date mini et la date maxi
pour filtrer en fonction de tes 2 champs
dans la zone "critères" de ta requête qui semble s'appeler "Rqt_FrmRecherche"
sous le champ [date]
Attention si tes champs sont indépendants donc ni repris dans ta table ni dans une requête il faut que ton formulaire soit ouvert et les champs renseignés sinon ....ils sont vides et donc pas de filtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part >=[Formulaires]![NomDeTonFormulaire]![NomDuChampDateMini] Et <=[Formulaires]![NomDeTonFormulaire]![NomDuChampDateMaxi]
Alors, en effet si je laisse le formulaire ouvert lorsque j'insère ces critères dans ma requête, ça me crée bien le filtre et me renvoie mes données dans la requête...
Mais mon formulaire se vide totalement (il ne me reste plus que l'en-tête)... toutes les cases à cocher, les zones de texte, la liste de résultat disparaissent.. tout...Vraiment très étrange !!
Est-ce que ça viendrait de là?
J'avais défini mes champs date1 et date2 comme ceci en VBA dans la fonction RefreshQuery. Je pense qu'il y a certainement une incompatibilité mais je ne parviens pas à définir mes champs autrement si je ne mets pas ça...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 If Me.chkDate1 Then SQL = SQL & "And [Rqt_FrmRecherche]![Date] like '*" & Me.txtDate1 & "*' " End If If Me.chkDate2 Then SQL = SQL & "And [Rqt_FrmRecherche]![Date] like '*" & Me.txtDate2& "*' " End If
désolé mais je ne vois pas à quoi cela correspond dans ta base et ton form et sousForm sans les voir
s'agissant d'un filtre c'est par la clause Where qu'il faut régler le problème
ce qui correspond
je ne vois pas comment l'inclure dans ton RefreshQuery ne connaissant ni l'environnement et ne pratiquant que très rarement le recours au SQL dans ma programmation VBA je n'ai jamais réglé de problème équivalent.WHERE ((([NomRequete].DATE)>=[Formulaires]![NomFormulaire]![ZoneTexteDateMini] And ([NomRequete].DATE)<=[Formulaires]![ NomFormulaire]![ ZoneTexteDateMaxi]))
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager