Aidez-moi !
Le
James
Bonjour,
J'ai déjà questionné ce forum, le grenier enfin pas mal
de ressource mais j'ai une difficulté que je n'arrive pas
à franchir.
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.
C'est super ça marche, par contre maintenant je
souhaiterai imprimer les résultats avec l'aide d'un état.
J'ai pourtant essayé de rentrer
DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon
filtre) mais y a toujours pas moyen que ça marche.
Que faire? Il y a surement un truc. J'ai besoin des
conseils d'experts avisés pour faire avancés cette
histoire.
Voici le code de mon formulaire en question, j'ai
volontairement simplifié le code pour vous éviter de
grosse lecture.
Attention dans mon code j'ai défini des cases à cocher
pour activer la saisie d'un critère :
Option Compare Database
Private Sub chkLotEb_Click()
If Me.chkLotEb Then
Me.cmbLotEb.Visible = False
Else
Me.cmbLotEb.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkOutillageEb_Click()
If Me.chkOutillageEb Then
Me.cmbOutillageEb.Visible = False
Else
Me.cmbOutillageEb.Visible = 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 = -1
Case "lbl"
ctl.Caption = "-*-*-"
Case "txt"
ctl.Visible = False
ctl.Value = ""
Case "cmb"
ctl.Visible = False
End Select
Next ctl
Me.lstResults.RowSource = "SELECT Ebaucheur.[Code SOM
Eb],Ebaucheur.[Code article],[Libellé art],Ebaucheur.
[Indice de série],Ebaucheur.[Circuit Fab],Ebaucheur.
[Procédé],Ebaucheur.[code qual fonte],Ebaucheur.[Qualité
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qté
Moules Eb],Ebaucheur.[Qté Fonds Eb],Ebaucheur.[Code
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la
série],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel départ 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 = "SELECT Ebaucheur.[Code SOM Eb],Ebaucheur.[Code
article],[Libellé art],Ebaucheur.[Indice de
série],Ebaucheur.[Circuit Fab],Ebaucheur.
[Procédé],Ebaucheur.[code qual fonte],Ebaucheur.[Qualité
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qté
Moules Eb],Ebaucheur.[Qté Fonds Eb],Ebaucheur.[Code
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la
série],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel départ Eb],Ebaucheur.[Potentiel Eb],Ebaucheur.
[Cumul Cps battus Eb] FROM [Filtre Eb]Where Ebaucheur.
[Code article]<>0"
If Not Me.chkLotEb Then
SQL = SQL & " And [Code SOM Eb]='" & Me.cmbLotEb & "'"
End If
If Not Me.chkOutillageEb Then
SQL = SQL & " And [Code article]=" &
Me.cmbOutillageEb & ""
End If
SQL = SQL & ";"
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
Private Sub Commande56_Click()
On Error GoTo Err_Commande56_Click
Dim stDocName As String
stDocName = "FiltreEb"
DoCmd.OpenReport stDocName, acPreview, SQL
Exit_Commande56_Click:
Exit Sub
Err_Commande56_Click:
MsgBox Err.Description
Resume Exit_Commande56_Click
End Sub
Je vous serai vraiment reconnaissant de m'aider sur ce
problème.
Comme je suis pas une expert, essayé de m'expliqué
simplement la soltution.
Merci
J'ai déjà questionné ce forum, le grenier enfin pas mal
de ressource mais j'ai une difficulté que je n'arrive pas
à franchir.
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.
C'est super ça marche, par contre maintenant je
souhaiterai imprimer les résultats avec l'aide d'un état.
J'ai pourtant essayé de rentrer
DocmdOpenReport,stdocname,acPreview, SQL (le nom de mon
filtre) mais y a toujours pas moyen que ça marche.
Que faire? Il y a surement un truc. J'ai besoin des
conseils d'experts avisés pour faire avancés cette
histoire.
Voici le code de mon formulaire en question, j'ai
volontairement simplifié le code pour vous éviter de
grosse lecture.
Attention dans mon code j'ai défini des cases à cocher
pour activer la saisie d'un critère :
Option Compare Database
Private Sub chkLotEb_Click()
If Me.chkLotEb Then
Me.cmbLotEb.Visible = False
Else
Me.cmbLotEb.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkOutillageEb_Click()
If Me.chkOutillageEb Then
Me.cmbOutillageEb.Visible = False
Else
Me.cmbOutillageEb.Visible = 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 = -1
Case "lbl"
ctl.Caption = "-*-*-"
Case "txt"
ctl.Visible = False
ctl.Value = ""
Case "cmb"
ctl.Visible = False
End Select
Next ctl
Me.lstResults.RowSource = "SELECT Ebaucheur.[Code SOM
Eb],Ebaucheur.[Code article],[Libellé art],Ebaucheur.
[Indice de série],Ebaucheur.[Circuit Fab],Ebaucheur.
[Procédé],Ebaucheur.[code qual fonte],Ebaucheur.[Qualité
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qté
Moules Eb],Ebaucheur.[Qté Fonds Eb],Ebaucheur.[Code
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la
série],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel départ 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 = "SELECT Ebaucheur.[Code SOM Eb],Ebaucheur.[Code
article],[Libellé art],Ebaucheur.[Indice de
série],Ebaucheur.[Circuit Fab],Ebaucheur.
[Procédé],Ebaucheur.[code qual fonte],Ebaucheur.[Qualité
fds Eb], Ebaucheur.[Emboitement MdB],Ebaucheur.[Qté
Moules Eb],Ebaucheur.[Qté Fonds Eb],Ebaucheur.[Code
usine], Ebaucheur.[Code stat serie],Ebaucheur.[Etat de la
série],Ebaucheur.[Lieu de stockage Eb], Ebaucheur.
[Potentiel départ Eb],Ebaucheur.[Potentiel Eb],Ebaucheur.
[Cumul Cps battus Eb] FROM [Filtre Eb]Where Ebaucheur.
[Code article]<>0"
If Not Me.chkLotEb Then
SQL = SQL & " And [Code SOM Eb]='" & Me.cmbLotEb & "'"
End If
If Not Me.chkOutillageEb Then
SQL = SQL & " And [Code article]=" &
Me.cmbOutillageEb & ""
End If
SQL = SQL & ";"
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
Private Sub Commande56_Click()
On Error GoTo Err_Commande56_Click
Dim stDocName As String
stDocName = "FiltreEb"
DoCmd.OpenReport stDocName, acPreview, SQL
Exit_Commande56_Click:
Exit Sub
Err_Commande56_Click:
MsgBox Err.Description
Resume Exit_Commande56_Click
End Sub
Je vous serai vraiment reconnaissant de m'aider sur ce
problème.
Comme je suis pas une expert, essayé de m'expliqué
simplement la soltution.
Merci

Poser une question


"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
-----------------------------
Et peut-on savoir ce qui est "mieux" ?
Le principe des newsgroups est de partager les solutions....
--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
http://memoaccess.free.fr
-----------------------------------
Dans sa missive, 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
|| -----------------------------
||
||
||
||
||
||
|| .