VBA / Access - Condition dans un sous-état ?
Résolu
Towers
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
Christounet Messages postés 1264 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- VBA / Access - Condition dans un sous-état ?
- Excel cellule couleur si condition texte - Guide
- Remettre pc etat usine - Guide
- Etat disque dur - Télécharger - Informations & Diagnostic
- Access runtime ✓ - Forum Access
- Etat batterie pc portable - Guide
4 réponses
Bonjour Towers,
Sorry, pas bien lu ton code, pourquoi tu ne changes pas tout simplement ta requête Requête2 dans le gestionnaire des requêtes d'Access en éditant directement le code SQL afin de rajouter la condition AND dateRendements >= a la valeur de champDate.
A plus
Sorry, pas bien lu ton code, pourquoi tu ne changes pas tout simplement ta requête Requête2 dans le gestionnaire des requêtes d'Access en éditant directement le code SQL afin de rajouter la condition AND dateRendements >= a la valeur de champDate.
A plus
Re-bonjour (Up !)
J'en profite pour vous dire ce que j'ai essayé de faire entre temps :
- j'ai essayé dans la fonction "Report_Open()" de "Etat1", d'utiliser les propriétés de "sseta_Etat2" : Filter et FilterOn.
Malheureusement ça ne marche pas.
je vous montre les filtre que je fait (pour l'instant ils sont simpplifiés volontairement)
Tentative 1 :
Tentative 2 :
Tentative 3 :
Tentative 4 :
Quand je fais ce qui me semble le plus logique, c'est-à-dire passer par
Alors:
En revanche quand je passe par
Merci de me donner un coup de main !!!
J'en profite pour vous dire ce que j'ai essayé de faire entre temps :
- j'ai essayé dans la fonction "Report_Open()" de "Etat1", d'utiliser les propriétés de "sseta_Etat2" : Filter et FilterOn.
Malheureusement ça ne marche pas.
je vous montre les filtre que je fait (pour l'instant ils sont simpplifiés volontairement)
Tentative 1 :
Reports![Etat2].Filter = "[dateRendements] >= #2008/07/27#" Reports![Etat2].FilterOn = True
Tentative 2 :
Me.sseta_Etat2.Report.Filter = "Format([dateRendements],""yyyy/mm/dd"") >= #2008/07/27#" Me.sseta_Etat2.Report.FilterOn = True
Tentative 3 :
Reports![Etat2].Filter = "Format([dateRendements],""yyyy/mm/dd"") >= #2008/07/27#" Reports![Etat2].FilterOn = True
Tentative 4 :
Me.sseta_Etat2.Report.Filter = "[dateRendements] >= #2008/07/27#" Me.sseta_Etat2.Report.FilterOn = True
Quand je fais ce qui me semble le plus logique, c'est-à-dire passer par
Me.sseta_Etat2.Report.Filter [CODE]
Alors:
Erreur d'exécution '2455' : La référence d'une expression à lapropriété Form/Report n'est pas valide
En revanche quand je passe par
Reports![Etat2].Filter = [CODE]alors :
Erreur d'exécution '2451' : Le nom d'état 'Etat2' entré dans votre expression est mal orthographié ou fait référence à un état qui n'est pas ouvert ou qui n'existe pas
Merci de me donner un coup de main !!!
Salut,
Je ne suis pas un pro des états, mais si tu veut rajouter une clause where de type date, cela donnerai :
'Code à placer au chargement du sous-état :
Dim s as string
dim d as string
'on récupere la date en question
d=Reports![Etat1]![champDate].Value
'on la convertie dans le format correct
s="#" & mid(d, 4, 2) & "/" & mid(d, 1, 2) & "/" & mid(d, 7, 4) & "#"
etat2.recordSource = "SELECT RQT.dateRendements, RQT.numMetier, RQT.refCampagne, RQT.refArticle, RQT.descriptionArticle, RQT.rendementA, RQT.rendementB, RQT.rendementC, RQT.rendementD, RQT.rendementE, RQT.rendementM
FROM rqt_Rdmts_Details AS RQT
WHERE (((RQT.numMetier)=États!Etat1!txtMetier))
AND RQT.MaDate=" & d
(Reste à vérifier le nom des champs et surtout si la propriété etat2.recordsource existe :))
Je ne suis pas un pro des états, mais si tu veut rajouter une clause where de type date, cela donnerai :
'Code à placer au chargement du sous-état :
Dim s as string
dim d as string
'on récupere la date en question
d=Reports![Etat1]![champDate].Value
'on la convertie dans le format correct
s="#" & mid(d, 4, 2) & "/" & mid(d, 1, 2) & "/" & mid(d, 7, 4) & "#"
etat2.recordSource = "SELECT RQT.dateRendements, RQT.numMetier, RQT.refCampagne, RQT.refArticle, RQT.descriptionArticle, RQT.rendementA, RQT.rendementB, RQT.rendementC, RQT.rendementD, RQT.rendementE, RQT.rendementM
FROM rqt_Rdmts_Details AS RQT
WHERE (((RQT.numMetier)=États!Etat1!txtMetier))
AND RQT.MaDate=" & d
(Reste à vérifier le nom des champs et surtout si la propriété etat2.recordsource existe :))
Déjà merci de ta réponse talrashha,
ensuite j'ai essayé ta méthode, en simplifiant les données pour ne pas tout tester en un seul coup.
Le problème est que je ne peut pas modifier la propriété Recordset de "Etat2" lorsque celui-ci a été ouvert :
Mon message issu du gestionnaire d'erreurs :
Si j'enlève le gestionnaire d'erreur alors VBA bloque sur la ligne "Me.RecordSDource = ..."
Ce qui me semble étonnant c'est que je n'ai pas cette erreur lors de l'ouverture de "Etat1" alors que dans "Etat1" : "Report_Open()", j'ai la ligne : Me.RecordSource = strSQL
Pour indication, voici mon code qui plante
ensuite j'ai essayé ta méthode, en simplifiant les données pour ne pas tout tester en un seul coup.
Le problème est que je ne peut pas modifier la propriété Recordset de "Etat2" lorsque celui-ci a été ouvert :
Mon message issu du gestionnaire d'erreurs :
Erreur 2191 pendant le chargement de "Etat2" : Impossible de définir la propriété Source en mode Aperçu avant impression ou après le début de l'impression
Si j'enlève le gestionnaire d'erreur alors VBA bloque sur la ligne "Me.RecordSDource = ..."
Ce qui me semble étonnant c'est que je n'ai pas cette erreur lors de l'ouverture de "Etat1" alors que dans "Etat1" : "Report_Open()", j'ai la ligne : Me.RecordSource = strSQL
Pour indication, voici mon code qui plante
Private Sub Report_Open(Cancel As Integer) On Error GoTo Err_Report_Open 'Code à placer au chargement du sous-état : Dim s As String Dim d As String 'Pour simplifier, on ne récupère pas encore la date : s = "#2008/07/28#" Me.RecordSource = "SELECT RQT.dateRendements, RQT.numMetier, " & _ "RQT.refCampagne, RQT.refArticle, RQT.descriptionArticle, " & _ "RQT.rendementA, RQT.rendementB, RQT.rendementC, " & _ "RQT.rendementD, RQT.rendementE, RQT.rendementM " & _ "FROM rqt_Rdmts_Details AS RQT " & _ "WHERE RQT.numMetier = [États]![Etat1]![txtMetier] " & _ ";" '"AND RQT.dateRendements >= " & s & ";" Exit_Report_Open: Exit Sub Err_Report_Open: MsgBox "Erreur " & err.Number & _ " pendant le chargement de ""Etat2"" : " & err.Description Resume Exit_Report_Open End Sub
Bonjour Towers
Dans ton code, tu as un ; de trop entre la condition WHERE et la condition AND
Cela peut-être la raison de ton erreur.
A plus
Dans ton code, tu as un ; de trop entre la condition WHERE et la condition AND
Me.RecordSource = "SELECT RQT.dateRendements, RQT.numMetier, " & _ "RQT.refCampagne, RQT.refArticle, RQT.descriptionArticle, " & _ "RQT.rendementA, RQT.rendementB, RQT.rendementC, " & _ "RQT.rendementD, RQT.rendementE, RQT.rendementM " & _ "FROM rqt_Rdmts_Details AS RQT " & _ "WHERE RQT.numMetier = [États]![Etat1]![txtMetier] " & _ "AND RQT.dateRendements >= " & s & ";"
Cela peut-être la raison de ton erreur.
A plus
Dans Etat2 : Report_Open()
Ainsi je ne touche plus à RecordSource mais j'agis directement sur la requête, ce qui ne pose pas de problème...
Merci encore (j'aurais spurement d'autres problèmes mais m'avoir aidé là-dessu, ça m'enlève une sacré épine du pied), il me reste à régler encore d'autres soucis mais c'est secondaire à mon avis.
A plus