Filtre dans un formulaire par dates

Le
Leyley39
bonjour

Je voudrais filtrer des enregistrements dans un formulaire en fonction des
dates (entre deux dates). j'ai donc créé deux textbox pour la date de début
et date de fin du filtre. Avec un code sur le bouton à bascule, le filtre
doit s'appliquer. Voici mon code :

Private Sub BasculeDate_Click()
If Me.BasculeDate.Value Then
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] >=
#" & Me.ladateDébut.Value & "# <= #" & Me.ladateFin.Value & "#"
Else
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
End If
End Sub

Mais ça ne fonctionne pas. Je me trompe peut être dans les " mais comme je
ne m'y connais pas beaucoup en VBA, je sèche. est-ce que quelqu'un voit où
est l'erreur ?


--
Merci de votre aide

Leyley39
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dragan
Le #18053281
bonjour Leyley,
tu as oublié un truc dans le filtre :
" AND [DATE ACTIVITE]<= #" & Me.ladateFin.Value & "#"
ou
"[DATE ACTIVITE] BETWEEN #" & ladatededebut & "# AND #" & ladatedefin & "#"

"Leyley39" a écrit :

bonjour

Je voudrais filtrer des enregistrements dans un formulaire en fonction des
dates (entre deux dates). j'ai donc créé deux textbox pour la date de début
et date de fin du filtre. Avec un code sur le bouton à bascule, le filtre
doit s'appliquer. Voici mon code :

Private Sub BasculeDate_Click()
If Me.BasculeDate.Value Then
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] >=
#" & Me.ladateDébut.Value & "# <= #" & Me.ladateFin.Value & "#"
Else
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
End If
End Sub

Mais ça ne fonctionne pas. Je me trompe peut être dans les " mais comme je
ne m'y connais pas beaucoup en VBA, je sèche. est-ce que quelqu'un voit où
est l'erreur ?


--
Merci de votre aide

Leyley39


Leyley39
Le #18054581
J'ai essayé tes deux suggestions. La deuxième semble préférable mais ne
filtre tout. Il doit me manquer encore un petit truc. Voici le code résultant
:

Private Sub BasculeDate_Click()
If Me.BasculeDate.Value Then
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE]
BETWEEN # " & Me.ladateDébut.Value & "# AND #" & Me.ladateFin.Value & "#"
Else
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
End If
End Sub

On s'approche, au moins ca ne bloque plus mais ca filtre tout. ?????
--
Merci de votre aide

Leyley39


"Dragan" a écrit :

bonjour Leyley,
tu as oublié un truc dans le filtre :
" AND [DATE ACTIVITE]<= #" & Me.ladateFin.Value & "#"
ou
"[DATE ACTIVITE] BETWEEN #" & ladatededebut & "# AND #" & ladatedefin & "#"

"Leyley39" a écrit :

> bonjour
>
> Je voudrais filtrer des enregistrements dans un formulaire en fonction des
> dates (entre deux dates). j'ai donc créé deux textbox pour la date de début
> et date de fin du filtre. Avec un code sur le bouton à bascule, le filtre
> doit s'appliquer. Voici mon code :
>
> Private Sub BasculeDate_Click()
> If Me.BasculeDate.Value Then
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] >=
> #" & Me.ladateDébut.Value & "# <= #" & Me.ladateFin.Value & "#"
> Else
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
> End If
> End Sub
>
> Mais ça ne fonctionne pas. Je me trompe peut être dans les " mais comme je
> ne m'y connais pas beaucoup en VBA, je sèche. est-ce que quelqu'un voit où
> est l'erreur ?
>
>
> --
> Merci de votre aide
>
> Leyley39


Dragan
Le #18054721
Je n'comprends pas. Le filtre ici s'applique au formulaire.
Que souhaites-tu faire ?

"Leyley39" a écrit :

J'ai essayé tes deux suggestions. La deuxième semble préférable mais ne
filtre tout. Il doit me manquer encore un petit truc. Voici le code résultant
:

Private Sub BasculeDate_Click()
If Me.BasculeDate.Value Then
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE]
BETWEEN # " & Me.ladateDébut.Value & "# AND #" & Me.ladateFin.Value & "#"
Else
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
End If
End Sub

On s'approche, au moins ca ne bloque plus mais ca filtre tout. ?????
--
Merci de votre aide

Leyley39


"Dragan" a écrit :

> bonjour Leyley,
> tu as oublié un truc dans le filtre :
> " AND [DATE ACTIVITE]<= #" & Me.ladateFin.Value & "#"
> ou
> "[DATE ACTIVITE] BETWEEN #" & ladatededebut & "# AND #" & ladatedefin & "#"
>
> "Leyley39" a écrit :
>
> > bonjour
> >
> > Je voudrais filtrer des enregistrements dans un formulaire en fonction des
> > dates (entre deux dates). j'ai donc créé deux textbox pour la date de début
> > et date de fin du filtre. Avec un code sur le bouton à bascule, le filtre
> > doit s'appliquer. Voici mon code :
> >
> > Private Sub BasculeDate_Click()
> > If Me.BasculeDate.Value Then
> > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
> > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] >=
> > #" & Me.ladateDébut.Value & "# <= #" & Me.ladateFin.Value & "#"
> > Else
> > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
> > End If
> > End Sub
> >
> > Mais ça ne fonctionne pas. Je me trompe peut être dans les " mais comme je
> > ne m'y connais pas beaucoup en VBA, je sèche. est-ce que quelqu'un voit où
> > est l'erreur ?
> >
> >
> > --
> > Merci de votre aide
> >
> > Leyley39


Eric
Le #18055641
Bonjour,

Il faut mettre la date au format US :
BETWEEN #" & Format(Me.ladateDébut, "mm/dd/yyyy") & "# AND #" &
Format(Me.ladateFin, "mm/dd/yyyy") & "#"

Leyley39 a écrit :
J'ai essayé tes deux suggestions. La deuxième semble préférable mais ne
filtre tout. Il doit me manquer encore un petit truc. Voici le code résultant
:

Private Sub BasculeDate_Click()
If Me.BasculeDate.Value Then
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE]
BETWEEN # " & Me.ladateDébut.Value & "# AND #" & Me.ladateFin.Value & "#"
Else
Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
End If
End Sub

On s'approche, au moins ca ne bloque plus mais ca filtre tout. ?????



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Leyley39
Le #18092221
J'ai défini le format dans le textbox mais ca ne change rien. Si je mais en
format US, il ne retrouvera pas les enregistrements qui eux sont en format
français.
--
Merci de votre aide

Leyley39


"Eric" a écrit :

Bonjour,

Il faut mettre la date au format US :
BETWEEN #" & Format(Me.ladateDébut, "mm/dd/yyyy") & "# AND #" &
Format(Me.ladateFin, "mm/dd/yyyy") & "#"

Leyley39 a écrit :
> J'ai essayé tes deux suggestions. La deuxième semble préférable mais ne
> filtre tout. Il doit me manquer encore un petit truc. Voici le code résultant
> :
>
> Private Sub BasculeDate_Click()
> If Me.BasculeDate.Value Then
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE]
> BETWEEN # " & Me.ladateDébut.Value & "# AND #" & Me.ladateFin.Value & "#"
> Else
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
> End If
> End Sub
>
> On s'approche, au moins ca ne bloque plus mais ca filtre tout. ?????

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Leyley39
Le #18092211
Le filtre doit effectivement s'appliquer à un formulaire.

Il y a une liste d'activité en fonction de différente date. L'utilisateur
voit tous les enregistrements mais voudrait les filtrer sur une période
donnée. Donc, j'ai créer deux textbox où l'utilisateur entre la date de début
et de fin de la période d'activité et, après avoir cliqué sur le bouton
"filtrer les enregistrement", ne voit que les activités concernant cette
période. Pour l'instant, le code bloque sur la dernière ligne.

J'ai utilisé ce code pour des champs listes et sur une date précise (et ca
fonctionne bien). Ca ne veut pas fonctionner pour une période comprise entre
deux dates. Avec ce que tu m'as donné Dragan, j'ai l'impression de ne pas
être loin de la solution. Mais ca ne fonctionne toujours pas.
--
Merci de votre aide

Leyley39


"Dragan" a écrit :

Je n'comprends pas. Le filtre ici s'applique au formulaire.
Que souhaites-tu faire ?

"Leyley39" a écrit :

> J'ai essayé tes deux suggestions. La deuxième semble préférable mais ne
> filtre tout. Il doit me manquer encore un petit truc. Voici le code résultant
> :
>
> Private Sub BasculeDate_Click()
> If Me.BasculeDate.Value Then
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE]
> BETWEEN # " & Me.ladateDébut.Value & "# AND #" & Me.ladateFin.Value & "#"
> Else
> Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
> End If
> End Sub
>
> On s'approche, au moins ca ne bloque plus mais ca filtre tout. ?????
> --
> Merci de votre aide
>
> Leyley39
>
>
> "Dragan" a écrit :
>
> > bonjour Leyley,
> > tu as oublié un truc dans le filtre :
> > " AND [DATE ACTIVITE]<= #" & Me.ladateFin.Value & "#"
> > ou
> > "[DATE ACTIVITE] BETWEEN #" & ladatededebut & "# AND #" & ladatedefin & "#"
> >
> > "Leyley39" a écrit :
> >
> > > bonjour
> > >
> > > Je voudrais filtrer des enregistrements dans un formulaire en fonction des
> > > dates (entre deux dates). j'ai donc créé deux textbox pour la date de début
> > > et date de fin du filtre. Avec un code sur le bouton à bascule, le filtre
> > > doit s'appliquer. Voici mon code :
> > >
> > > Private Sub BasculeDate_Click()
> > > If Me.BasculeDate.Value Then
> > > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = True
> > > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] >=
> > > #" & Me.ladateDébut.Value & "# <= #" & Me.ladateFin.Value & "#"
> > > Else
> > > Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.FilterOn = False
> > > End If
> > > End Sub
> > >
> > > Mais ça ne fonctionne pas. Je me trompe peut être dans les " mais comme je
> > > ne m'y connais pas beaucoup en VBA, je sèche. est-ce que quelqu'un voit où
> > > est l'erreur ?
> > >
> > >
> > > --
> > > Merci de votre aide
> > >
> > > Leyley39


Eric
Le #18092491
Bonjour,

Ne pas définir de format pour la zone de texte et saisir la date au
format français.
Le critère de filtre est une clause SQL Where sans le mot where et donc
il faut écrire la clause en US et mettre les dates au format US comme
indiqué dans mon post précédent.

Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] BETWEEN
#" & Format(Me.ladateDébut, "mm/dd/yyyy") & "# AND #" &
Format(Me.ladateFin, "mm/dd/yyyy") & "#"

Leyley39 a écrit :
J'ai défini le format dans le textbox mais ca ne change rien. Si je mais en
format US, il ne retrouvera pas les enregistrements qui eux sont en format
français.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Leyley39
Le #18110141
Génial ça marche. Merci. Bizarre tout de même qu'il faille mettre en format
US. Mais bon, en autant que ça fonctionne.
--
Merci beaucoup de votre aide

Leyley39


"Eric" a écrit :

Bonjour,

Ne pas définir de format pour la zone de texte et saisir la date au
format français.
Le critère de filtre est une clause SQL Where sans le mot where et donc
il faut écrire la clause en US et mettre les dates au format US comme
indiqué dans mon post précédent.

Me.SF_2_ACTIVITE_PRO_SMAEC_SMAEC.Form.Filter = "[DATE ACTIVITE] BETWEEN
#" & Format(Me.ladateDébut, "mm/dd/yyyy") & "# AND #" &
Format(Me.ladateFin, "mm/dd/yyyy") & "#"

Leyley39 a écrit :
> J'ai défini le format dans le textbox mais ca ne change rien. Si je mais en
> format US, il ne retrouvera pas les enregistrements qui eux sont en format
> français.

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Publicité
Poster une réponse
Anonyme