OVH Cloud OVH Cloud

filtre avec liste modifiable

3 réponses
Avatar
belok
Bonjour,

J'ai un formulaire qui a comme source controle la table "annonce".
dans la table annonce il y a un champs date d'insertion.

Je voudrai mettre une liste modifiable (m1) dans l'en tête d'un formulaire
avec les date d'insertion et quand je séléctionne une date y me donne les
enregitrements associé a cette date.

La liste modifiable a comme contenu :
SELECT [annonce].[A_date_insertion] FROM annonce;

Formulaire : table annonce

J'ai essayé ça

Private Sub m1_Change()
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'"
Me.FilterOn = True
End Sub


Je sais pas trop comment procédé ?

merci,

3 réponses

Avatar
Xhis
Salut Belok,

La seule erreur que j'ai pu relever dans ton code est la
suivante: la propriete FILTER d'un formulaire est
equivalante a une clause SQL WHERE sans le mot clef WHERE.
Mais il est imperatif de specifier le champ sur lequelle
tu effecte le filtre:
Ton code:
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'
La solution que je te propose:
Me.Filter = "A_date_insertion = #" & m1 & "#"
L'explication:
Le symbol # sert a encadrer une valeur DATE/TIME dans
access (si j'ai bien compris c'est un heritage de SQL)
Le filtre peut maintenant etre lu comme ceci: filtre les
enregistrements de 'annonce' ou le
champ 'A_date_insertion' vaut 'm1'.
Il faut savoir aussi que m1 ecrit comme cela implique que
ton code fait implicitement reference a la
propriete 'Value' du controle 'A_date_insertion'
(propriete par defaut).

Bon amusement !

Xhis

-----Message d'origine-----
Bonjour,

J'ai un formulaire qui a comme source controle la
table "annonce".

dans la table annonce il y a un champs date d'insertion.

Je voudrai mettre une liste modifiable (m1) dans l'en
tête d'un formulaire

avec les date d'insertion et quand je séléctionne une
date y me donne les

enregitrements associé a cette date.

La liste modifiable a comme contenu :
SELECT [annonce].[A_date_insertion] FROM annonce;

Formulaire : table annonce

J'ai essayé ça

Private Sub m1_Change()
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'"
Me.FilterOn = True
End Sub


Je sais pas trop comment procédé ?

merci,


.



Avatar
Pierre CFI [mvp]
bonjour
oui et comme c'est du vb, il faut mettre la date en us
Format(m1,"mm/dd/yyyy") entouré de # effectivement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Xhis" a écrit dans le message de news: 000f01c3a60b$7aa09060$
Salut Belok,

La seule erreur que j'ai pu relever dans ton code est la
suivante: la propriete FILTER d'un formulaire est
equivalante a une clause SQL WHERE sans le mot clef WHERE.
Mais il est imperatif de specifier le champ sur lequelle
tu effecte le filtre:
Ton code:
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'
La solution que je te propose:
Me.Filter = "A_date_insertion = #" & m1 & "#"
L'explication:
Le symbol # sert a encadrer une valeur DATE/TIME dans
access (si j'ai bien compris c'est un heritage de SQL)
Le filtre peut maintenant etre lu comme ceci: filtre les
enregistrements de 'annonce' ou le
champ 'A_date_insertion' vaut 'm1'.
Il faut savoir aussi que m1 ecrit comme cela implique que
ton code fait implicitement reference a la
propriete 'Value' du controle 'A_date_insertion'
(propriete par defaut).

Bon amusement !

Xhis

-----Message d'origine-----
Bonjour,

J'ai un formulaire qui a comme source controle la
table "annonce".

dans la table annonce il y a un champs date d'insertion.

Je voudrai mettre une liste modifiable (m1) dans l'en
tête d'un formulaire

avec les date d'insertion et quand je séléctionne une
date y me donne les

enregitrements associé a cette date.

La liste modifiable a comme contenu :
SELECT [annonce].[A_date_insertion] FROM annonce;

Formulaire : table annonce

J'ai essayé ça

Private Sub m1_Change()
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'"
Me.FilterOn = True
End Sub


Je sais pas trop comment procédé ?

merci,


.



Avatar
belok
un grand merci pour ton explication clair et précise ... ;)

"Xhis" a écrit dans le message de
news:000f01c3a60b$7aa09060$
Salut Belok,

La seule erreur que j'ai pu relever dans ton code est la
suivante: la propriete FILTER d'un formulaire est
equivalante a une clause SQL WHERE sans le mot clef WHERE.
Mais il est imperatif de specifier le champ sur lequelle
tu effecte le filtre:
Ton code:
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'
La solution que je te propose:
Me.Filter = "A_date_insertion = #" & m1 & "#"
L'explication:
Le symbol # sert a encadrer une valeur DATE/TIME dans
access (si j'ai bien compris c'est un heritage de SQL)
Le filtre peut maintenant etre lu comme ceci: filtre les
enregistrements de 'annonce' ou le
champ 'A_date_insertion' vaut 'm1'.
Il faut savoir aussi que m1 ecrit comme cela implique que
ton code fait implicitement reference a la
propriete 'Value' du controle 'A_date_insertion'
(propriete par defaut).

Bon amusement !

Xhis

-----Message d'origine-----
Bonjour,

J'ai un formulaire qui a comme source controle la
table "annonce".

dans la table annonce il y a un champs date d'insertion.

Je voudrai mettre une liste modifiable (m1) dans l'en
tête d'un formulaire

avec les date d'insertion et quand je séléctionne une
date y me donne les

enregitrements associé a cette date.

La liste modifiable a comme contenu :
SELECT [annonce].[A_date_insertion] FROM annonce;

Formulaire : table annonce

J'ai essayé ça

Private Sub m1_Change()
Me.Filter = "#[A_date_insertion]# ='" & m1 & "'"
Me.FilterOn = True
End Sub


Je sais pas trop comment procédé ?

merci,


.