J'ai d=E9j=E0 questionn=E9 ce forum, le grenier enfin pas mal=20
de ressource mais j'ai une difficult=E9 que je n'arrive pas=20
=E0 franchir.
J'ai cr=E9er un formulaire sur lequel j'ai 16 listes=20
d=E9roulante : qui me permettent de d=E9finir les crit=E8res=20
d'une requ=EAte. Le r=E9sultat de tout =E7a s'affichant dans=20
une zone de liste.
C'est donc un filtre multi-crit=E8re.
C'est super =E7a marche, par contre maintenant je=20
souhaiterai imprimer les r=E9sultats avec l'aide d'un =E9tat.
J'ai pourtant essay=E9 de rentrer=20
DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon=20
filtre) mais y a toujours pas moyen que =E7a marche.
Que faire? Il y a surement un truc. J'ai besoin des=20
conseils d'experts avis=E9s pour faire avanc=E9s cette=20
histoire.
Voici le code de mon formulaire en question, j'ai=20
volontairement simplifi=E9 le code pour vous =E9viter de=20
grosse lecture.
Attention dans mon code j'ai d=E9fini des cases =E0 cocher=20
pour activer la saisie d'un crit=E8re :
Option Compare Database
Private Sub chkLotEb_Click()
If Me.chkLotEb Then
Me.cmbLotEb.Visible =3D False
Else
Me.cmbLotEb.Visible =3D True
End If
RefreshQuery
End Sub
Private Sub chkOutillageEb_Click()
If Me.chkOutillageEb Then
Me.cmbOutillageEb.Visible =3D False
Else
Me.cmbOutillageEb.Visible =3D True
End If
RefreshQuery
End Sub
Private Sub cmbLotEb_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbOutillageEb_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub Form_Load()
Dim ctl As Control
For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)
Case "chk"
ctl.Value =3D -1
Case "lbl"
ctl.Caption =3D "-*-*-"
Case "txt"
ctl.Visible =3D False
ctl.Value =3D ""
Case "cmb"
ctl.Visible =3D False
End Select
Next ctl
Me.lstResults.RowSource =3D "SELECT Ebaucheur.[Code SOM=20
Eb],Ebaucheur.[Code article],[Libell=E9 art],Ebaucheur.
[Indice de s=E9rie],Ebaucheur.[Circuit Fab],Ebaucheur.
[Proc=E9d=E9],Ebaucheur.[code qual fonte],Ebaucheur.[Qualit=E9=20
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qt=E9=20
Moules Eb],Ebaucheur.[Qt=E9 Fonds Eb],Ebaucheur.[Code=20
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la=20
s=E9rie],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel d=E9part Eb],Ebaucheur.[Potentiel Eb],Ebaucheur.
[Cumul Cps battus Eb] FROM [Filtre Eb]Where Ebaucheur.
[Code article]<>0;"
Me.lstResults.Requery
End Sub
Private Sub RefreshQuery()
Dim SQL As String
SQL =3D "SELECT Ebaucheur.[Code SOM Eb],Ebaucheur.[Code=20
article],[Libell=E9 art],Ebaucheur.[Indice de=20
s=E9rie],Ebaucheur.[Circuit Fab],Ebaucheur.
[Proc=E9d=E9],Ebaucheur.[code qual fonte],Ebaucheur.[Qualit=E9=20
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qt=E9=20
Moules Eb],Ebaucheur.[Qt=E9 Fonds Eb],Ebaucheur.[Code=20
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la=20
s=E9rie],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel d=E9part Eb],Ebaucheur.[Potentiel Eb],Ebaucheur.
[Cumul Cps battus Eb] FROM [Filtre Eb]Where Ebaucheur.
[Code article]<>0"
If Not Me.chkLotEb Then
SQL =3D SQL & " And [Code SOM Eb]=3D'" & Me.cmbLotEb & "'"
End If
If Not Me.chkOutillageEb Then
SQL =3D SQL & " And [Code article]=3D" &=20
Me.cmbOutillageEb & ""
End If
SQL =3D SQL & ";"
Me.lstResults.RowSource =3D SQL
Me.lstResults.Requery
End Sub
Private Sub Commande56_Click()
On Error GoTo Err_Commande56_Click
Err_Commande56_Click:
MsgBox Err.Description
Resume Exit_Commande56_Click
=20
End Sub
Je vous serai vraiment reconnaissant de m'aider sur ce=20
probl=E8me.=20
Comme je suis pas une expert, essay=E9 de m'expliqu=E9=20
simplement la soltution.
Merci
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
3stone
Salut,
"James"
J'ai créer un formulaire sur lequel j'ai 16 listes déroulante : qui me permettent de définir les critères d'une requête. Le résultat de tout ça s'affichant dans une zone de liste. C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour alimenter... une source!
J'ai pourtant essayé de rentrer DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton état. Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de texte "txtSQL" dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en mettant d'abord dans son événement "Sur ouverture" la ligne suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox du formulaire. Bien sûr, il faut que les textbox de l'état aient leurs sources renseignées.
Ca te vas ?
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"James"
J'ai créer un formulaire sur lequel j'ai 16 listes
déroulante : qui me permettent de définir les critères
d'une requête. Le résultat de tout ça s'affichant dans
une zone de liste.
C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour alimenter... une source!
J'ai pourtant essayé de rentrer
DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon
filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux
renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton état.
Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de texte "txtSQL"
dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en mettant
d'abord dans son événement "Sur ouverture" la ligne suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox du formulaire.
Bien sûr, il faut que les textbox de l'état aient leurs sources renseignées.
Ca te vas ?
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
J'ai créer un formulaire sur lequel j'ai 16 listes déroulante : qui me permettent de définir les critères d'une requête. Le résultat de tout ça s'affichant dans une zone de liste. C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour alimenter... une source!
J'ai pourtant essayé de rentrer DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton état. Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de texte "txtSQL" dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en mettant d'abord dans son événement "Sur ouverture" la ligne suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox du formulaire. Bien sûr, il faut que les textbox de l'état aient leurs sources renseignées.
Ca te vas ?
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
James
Merci pour la solution, mais j'ai trouvé encore mieux!
-----Message d'origine----- Salut,
"James"
J'ai créer un formulaire sur lequel j'ai 16 listes déroulante : qui me permettent de définir les critères d'une requête. Le résultat de tout ça s'affichant dans une zone de liste. C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour alimenter... une source!
J'ai pourtant essayé de rentrer DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton état.
Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de texte "txtSQL"
dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en mettant
d'abord dans son événement "Sur ouverture" la ligne suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox du formulaire.
Bien sûr, il faut que les textbox de l'état aient leurs sources renseignées.
Ca te vas ?
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
.
Merci pour la solution, mais j'ai trouvé encore mieux!
-----Message d'origine-----
Salut,
"James"
J'ai créer un formulaire sur lequel j'ai 16 listes
déroulante : qui me permettent de définir les critères
d'une requête. Le résultat de tout ça s'affichant dans
une zone de liste.
C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour
alimenter... une source!
J'ai pourtant essayé de rentrer
DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon
filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux
renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton
état.
Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de
texte "txtSQL"
dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est
inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en
mettant
d'abord dans son événement "Sur ouverture" la ligne
suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox
du formulaire.
Bien sûr, il faut que les textbox de l'état aient
leurs sources renseignées.
Ca te vas ?
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Merci pour la solution, mais j'ai trouvé encore mieux!
-----Message d'origine----- Salut,
"James"
J'ai créer un formulaire sur lequel j'ai 16 listes déroulante : qui me permettent de définir les critères d'une requête. Le résultat de tout ça s'affichant dans une zone de liste. C'est donc un filtre multi-critère.
Non... ce n'est pas un "filtre" dans le sens Access.
Tu construit en fait la "chaîne SQL" pour alimenter... une source!
J'ai pourtant essayé de rentrer DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon filtre) mais y a toujours pas moyen que ça marche.
Justement, à cet endroit, c'est un filtre que tu peux renseigner, du style "[NomClient]='toto'"
Or, tu souhaite transmettre le recordsource à ton état.
Comme tu as demandé 'simple', tu peux faire ceci:
Crée sur ton formulaire une petite zone de texte "txtSQL"
dont tu peux mettre la propriété visible à Non.
Lorsque tu alimente ta liste par :
Me.lstResults.RowSource = SQL
Me.lstResults.Requery NB: ce Requery est inutile...
tu place également ta chaîne dans la zone de texte:
Me!txtSQL = SQL
Cela fait, tu peux maintenant lancer ton état en mettant
d'abord dans son événement "Sur ouverture" la ligne suivante:
Me.RecordSource = Froms!TonFormulaire!txtSQL
Ainsi, l'état ira chercher sa chaîne dans le textbox du formulaire.
Bien sûr, il faut que les textbox de l'état aient leurs sources renseignées.
Ca te vas ?
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
.
Arnaud [lwa]
Bonjour James,
Et peut-on savoir ce qui est "mieux" ?
Le principe des newsgroups est de partager les solutions....
Dans sa missive, James a atermoyé : | Merci pour la solution, mais j'ai trouvé encore mieux! | || -----Message d'origine----- || Salut, || || "James" || || J'ai créer un formulaire sur lequel j'ai 16 listes || déroulante : qui me permettent de définir les critères || d'une requête. Le résultat de tout ça s'affichant dans || une zone de liste. || C'est donc un filtre multi-critère. || || Non... ce n'est pas un "filtre" dans le sens Access. || || Tu construit en fait la "chaîne SQL" pour alimenter... une || source! || || || || || J'ai pourtant essayé de rentrer || DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon || filtre) mais y a toujours pas moyen que ça marche. || || || Justement, à cet endroit, c'est un filtre que tu peux || renseigner, du style "[NomClient]='toto'" || || Or, tu souhaite transmettre le recordsource à ton état. || Comme tu as demandé 'simple', tu peux faire ceci: || || Crée sur ton formulaire une petite zone de | texte "txtSQL" || dont tu peux mettre la propriété visible à Non. || || Lorsque tu alimente ta liste par : || || Me.lstResults.RowSource = SQL || || Me.lstResults.Requery NB: ce Requery est inutile... || || tu place également ta chaîne dans la zone de texte: || || Me!txtSQL = SQL || || Cela fait, tu peux maintenant lancer ton état en mettant || d'abord dans son événement "Sur ouverture" la ligne suivante: || || Me.RecordSource = Froms!TonFormulaire!txtSQL || || Ainsi, l'état ira chercher sa chaîne dans le textbox du || formulaire. Bien sûr, il faut que les textbox de l'état aient || leurs sources renseignées. || || || Ca te vas ? || || || -- || A+ || Pierre (3stone) Access MVP || ----------------------------- || http://users.skynet.be/mpfa || ----------------------------- || || || || || || || .
Bonjour James,
Et peut-on savoir ce qui est "mieux" ?
Le principe des newsgroups est de partager les solutions....
Dans sa missive, James <anonymous@discussions.microsoft.com> a atermoyé :
| Merci pour la solution, mais j'ai trouvé encore mieux!
|
|| -----Message d'origine-----
|| Salut,
||
|| "James"
||
|| J'ai créer un formulaire sur lequel j'ai 16 listes
|| déroulante : qui me permettent de définir les critères
|| d'une requête. Le résultat de tout ça s'affichant dans
|| une zone de liste.
|| C'est donc un filtre multi-critère.
||
|| Non... ce n'est pas un "filtre" dans le sens Access.
||
|| Tu construit en fait la "chaîne SQL" pour alimenter... une
|| source!
||
||
||
||
|| J'ai pourtant essayé de rentrer
|| DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon
|| filtre) mais y a toujours pas moyen que ça marche.
||
||
|| Justement, à cet endroit, c'est un filtre que tu peux
|| renseigner, du style "[NomClient]='toto'"
||
|| Or, tu souhaite transmettre le recordsource à ton état.
|| Comme tu as demandé 'simple', tu peux faire ceci:
||
|| Crée sur ton formulaire une petite zone de
| texte "txtSQL"
|| dont tu peux mettre la propriété visible à Non.
||
|| Lorsque tu alimente ta liste par :
||
|| Me.lstResults.RowSource = SQL
||
|| Me.lstResults.Requery NB: ce Requery est inutile...
||
|| tu place également ta chaîne dans la zone de texte:
||
|| Me!txtSQL = SQL
||
|| Cela fait, tu peux maintenant lancer ton état en mettant
|| d'abord dans son événement "Sur ouverture" la ligne suivante:
||
|| Me.RecordSource = Froms!TonFormulaire!txtSQL
||
|| Ainsi, l'état ira chercher sa chaîne dans le textbox du
|| formulaire. Bien sûr, il faut que les textbox de l'état aient
|| leurs sources renseignées.
||
||
|| Ca te vas ?
||
||
|| --
|| A+
|| Pierre (3stone) Access MVP
|| -----------------------------
|| http://users.skynet.be/mpfa
|| -----------------------------
||
||
||
||
||
||
|| .
Dans sa missive, James a atermoyé : | Merci pour la solution, mais j'ai trouvé encore mieux! | || -----Message d'origine----- || Salut, || || "James" || || J'ai créer un formulaire sur lequel j'ai 16 listes || déroulante : qui me permettent de définir les critères || d'une requête. Le résultat de tout ça s'affichant dans || une zone de liste. || C'est donc un filtre multi-critère. || || Non... ce n'est pas un "filtre" dans le sens Access. || || Tu construit en fait la "chaîne SQL" pour alimenter... une || source! || || || || || J'ai pourtant essayé de rentrer || DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon || filtre) mais y a toujours pas moyen que ça marche. || || || Justement, à cet endroit, c'est un filtre que tu peux || renseigner, du style "[NomClient]='toto'" || || Or, tu souhaite transmettre le recordsource à ton état. || Comme tu as demandé 'simple', tu peux faire ceci: || || Crée sur ton formulaire une petite zone de | texte "txtSQL" || dont tu peux mettre la propriété visible à Non. || || Lorsque tu alimente ta liste par : || || Me.lstResults.RowSource = SQL || || Me.lstResults.Requery NB: ce Requery est inutile... || || tu place également ta chaîne dans la zone de texte: || || Me!txtSQL = SQL || || Cela fait, tu peux maintenant lancer ton état en mettant || d'abord dans son événement "Sur ouverture" la ligne suivante: || || Me.RecordSource = Froms!TonFormulaire!txtSQL || || Ainsi, l'état ira chercher sa chaîne dans le textbox du || formulaire. Bien sûr, il faut que les textbox de l'état aient || leurs sources renseignées. || || || Ca te vas ? || || || -- || A+ || Pierre (3stone) Access MVP || ----------------------------- || http://users.skynet.be/mpfa || ----------------------------- || || || || || || || .