OVH Cloud OVH Cloud

instruction me!filter ?

4 réponses
Avatar
Le méruvien
bonjour, je suis dans un formulaire en tableau, qui m'affiche les
rendez-vous d'une personne sélectionné, pour un jour déterminé.
sur ce formulaire j'ai mis 2 boutons "jour + 1" et "jour -1" chacun lié au
code ci-dessous.
********
Me!queldate = queldate + 1
Me.Filter = "[date]=#" & Format(queldate, "mm/dd/yy") & "#"
Me.FilterOn = True
*********
Mon problème est que quand je clic sur l'un des boutons je jour change bien,
et correspond bien a la date demandée, mais le tri pour la personne
sélectionnée au depart ne se fait plus !
J'ai essayé le code ci-dessous, mais ça marche pas, (incompatibilité de
type)
**********
Me!queldate = queldate + 1
Me.Filter = "[date]=#" & Format(queldate, "mm/dd/yy") & "#" And
representant = Forms![planning d'un vendeur].representant
Me.FilterOn = True
*************
Quel est la solution??
merci d'avance
roger

4 réponses

Avatar
Eric
Bonjour Roger

Mon problème est que quand je clic sur l'un des boutons je jour change bien,
et correspond bien a la date demandée, mais le tri pour la personne
sélectionnée au depart ne se fait plus !
J'ai essayé le code ci-dessous, mais ça marche pas, (incompatibilité de
type)
**********
Me!queldate = queldate + 1
Me.Filter = "[date]=#" & Format(queldate, "mm/dd/yy") & "#" And
representant = Forms![planning d'un vendeur].representant
Me.FilterOn = True
*************


Il faut que le And Representant= soit soit dans les ""

Essaies ca:
Me.Filter="[tadate]=#" & Format(queldate,"mm/dd/yy") & "# And
[Representant]=" & Forms![planning d'un vendeur].Representant
Me.FilterOn=True

Je suppose que representant est numérique si c'est pas le cas, alors
mettre apres le signe = un ' et apres Forms![planning d'un
vendeur].Representant , rajouter & "'"
(Si Forms[Planning d'un vendeur] est le même formulaire tu peux alléger
en supprimant le chemin)

A+
Eric

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
Le méruvien
Bonjour Eric,
ça marche, tant qu'il y à des enregistrement à afficher au jour voulue, mais
des qu'on arrive a un jour sans rendez-vous, il y a un message d'erreur qui
dis "expression sans paramétre"
y a t-il un moyen pour passer si un jour n'a pas de rdv ?


"Eric" a écrit dans le message de news:

Bonjour Roger

Mon problème est que quand je clic sur l'un des boutons je jour change
bien,


et correspond bien a la date demandée, mais le tri pour la personne
sélectionnée au depart ne se fait plus !
J'ai essayé le code ci-dessous, mais ça marche pas, (incompatibilité de
type)
**********
Me!queldate = queldate + 1
Me.Filter = "[date]=#" & Format(queldate, "mm/dd/yy") & "#" And
representant = Forms![planning d'un vendeur].representant
Me.FilterOn = True
*************


Il faut que le And Representant= soit soit dans les ""

Essaies ca:
Me.Filter="[tadate]=#" & Format(queldate,"mm/dd/yy") & "# And
[Representant]=" & Forms![planning d'un vendeur].Representant
Me.FilterOn=True

Je suppose que representant est numérique si c'est pas le cas, alors
mettre apres le signe = un ' et apres Forms![planning d'un
vendeur].Representant , rajouter & "'"
(Si Forms[Planning d'un vendeur] est le même formulaire tu peux alléger
en supprimant le chemin)

A+
Eric

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com




Avatar
Eric
Le méruvien a écrit:

ça marche, tant qu'il y à des enregistrement à afficher au jour voulue, mais
des qu'on arrive a un jour sans rendez-vous, il y a un message d'erreur qui
dis "expression sans paramétre"


re Roger

Je ne pense pas que ce message d'erreur vienne du filtre car si un des
2 champs (ou les 2) de ton filtre n'est pas renseigné, tu aurais une
Erreur de syntaxe du genre "opérateur absent dans l'expression...".
En fait, tu dois récupérer via ton code dans une clause where ou dans
la définition sql de la source du formulaire un n° de rendez-vous sur
un autre évènement (Click ou AfterUpdate du formulaire...), si bien que
tu as ce message.

N'ayant pas d'autres infos, je peux pas te donner plus de
renseignements. Mais regardes bien à quel endroit, dans quelle
procédure, tu as ce message avec l'aide du deboggeur.

je te joins un exemple de procédure(recherche de factures pour un
client) pour tester le contenu des zones de filtrage (à améliorer et à
adapter pour tes besoins)

Private Sub Commande17_Click() ' le bouton qui filtre
If Not IsNull(Me.txtDate) And Not IsNull(txtClient) Then
Me.Filter = "[DateFacture]=#" & Format(txtDate, "mm/dd/yy") _
& "# and [NumClient]=" & txtClient
Me.FilterOn = True
Else
MsgBox "Pas de données à visualiser"
Me.FilterOn = False
End If
End Sub


les boutons : TaDate-1, TaDate+1

Private Sub ADayBefore_Click()
txtDate = DateAdd("d", -1, txtDate)
End Sub

Private Sub ADayAfter_Click()
txtDate = DateAdd("d", 1, txtDate)
End Sub



y a t-il un moyen pour passer si un jour n'a pas de rdv ?

Oui su tu fais un Dcount sur la table avec tes critères de filtre du

genre (sur mon exemple)

If DCount("[NumFacture]", "tfacture", "[DateFacture]=#" &
Format(txtDate, "mm/dd/yy") _
& "# and [NumClient]=" & txtClient) = 0 Then Exit Sub



A+
Eric

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
Le méruvien
Merci, mais ça fait rien, je laisse tomber ce truc, car en definitif, le
message ne viens pas a l'afffichage du formulaire vide, mais a celui d'apres
ou d'avant si je reviens en arriere, car il a perdu le nom du representant.
roger



"Eric" a écrit dans le message de news:

Le méruvien a écrit:

ça marche, tant qu'il y à des enregistrement à afficher au jour voulue,
mais


des qu'on arrive a un jour sans rendez-vous, il y a un message d'erreur
qui


dis "expression sans paramétre"


re Roger

Je ne pense pas que ce message d'erreur vienne du filtre car si un des
2 champs (ou les 2) de ton filtre n'est pas renseigné, tu aurais une
Erreur de syntaxe du genre "opérateur absent dans l'expression...".
En fait, tu dois récupérer via ton code dans une clause where ou dans
la définition sql de la source du formulaire un n° de rendez-vous sur
un autre évènement (Click ou AfterUpdate du formulaire...), si bien que
tu as ce message.

N'ayant pas d'autres infos, je peux pas te donner plus de
renseignements. Mais regardes bien à quel endroit, dans quelle
procédure, tu as ce message avec l'aide du deboggeur.

je te joins un exemple de procédure(recherche de factures pour un
client) pour tester le contenu des zones de filtrage (à améliorer et à
adapter pour tes besoins)

Private Sub Commande17_Click() ' le bouton qui filtre
If Not IsNull(Me.txtDate) And Not IsNull(txtClient) Then
Me.Filter = "[DateFacture]=#" & Format(txtDate, "mm/dd/yy") _
& "# and [NumClient]=" & txtClient
Me.FilterOn = True
Else
MsgBox "Pas de données à visualiser"
Me.FilterOn = False
End If
End Sub


les boutons : TaDate-1, TaDate+1

Private Sub ADayBefore_Click()
txtDate = DateAdd("d", -1, txtDate)
End Sub

Private Sub ADayAfter_Click()
txtDate = DateAdd("d", 1, txtDate)
End Sub



y a t-il un moyen pour passer si un jour n'a pas de rdv ?

Oui su tu fais un Dcount sur la table avec tes critères de filtre du

genre (sur mon exemple)

If DCount("[NumFacture]", "tfacture", "[DateFacture]=#" &
Format(txtDate, "mm/dd/yy") _
& "# and [NumClient]=" & txtClient) = 0 Then Exit Sub



A+
Eric

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com