Comment ne pas imprimer certaines pages d'un état

Le
AfterBoy
Bonjour,

Lorsque j'imprime mes horaires, certains d'entres elles sont vides et
n'a aucune période de placées alors je voudrais ne pas imprimer ces
pages pour rien. Je pourrais mettre mon compteur de périodes dans ma
requête principale mais ça ralentirait beaucoup l'impression alors je
veux savoir si ca peut se faire autrement c'est à dire dans l'état
même.

Voici le code dans mon état sur l'événement au formatage de la section=

détail.
Merci

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
ViderTablo ("pr")
NOHM_ = Me.NoHm

req = "SELECT Hm.Programme, Hm.année, hm.session, Hm.Série,
HmCours.Groupe, HmCours.NoCours, Periodes.NoHmCours, hmcours.Groupe,
Periodes.NoProf, Periodes.Période, Periodes.Local, Hm.NoHm,
Jumelages.Conflit FROM Periodes INNER JOIN (Hm INNER JOIN (HmCours
INNER JOIN Jumelages ON HmCours.NoHmCours = Jumelages.NoHmCours) ON
Hm.NoHm = Jumelages.NoHm) ON Periodes.NoHmCours = HmCours.NoHmCours
WHERE (((Hm.NoHm)= " & NOHM_ & ")) ORDER BY periodes.Période"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(req)

If rst.RecordCount > 0 Then ' SI il y a plus d'une période alors on
imprime l'horaire
rst.MoveFirst
Do While Not rst.EOF
'MsgBox rst!Période
Me.Controls("pr" & rst!Période).Value = Me.Controls("pr" & rst!
Période).Value & Left(rst!NoCours, 3) & "-" & Mid(rst!NoCours, 4,
3) & "-" & Mid(rst!NoCours, 7, 2) & " " & rst!Groupe & " " & rst!
Local & vbCrLf
rst.MoveNext
Loop
else ' Sinon ne pas imprimer la page
CANCELLER LA PAGE ???
End If

End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #6680281
Salut,

Elle est basé sur quoi, ton état ?

Je pense qu'il serait mieux de travailler avec un état et sous-état...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




"AfterBoy"
Lorsque j'imprime mes horaires, certains d'entres elles sont vides et
n'a aucune période de placées alors je voudrais ne pas imprimer ces
pages pour rien. Je pourrais mettre mon compteur de périodes dans ma
requête principale mais ça ralentirait beaucoup l'impression alors je
veux savoir si ca peut se faire autrement c'est à dire dans l'état
même.

Voici le code dans mon état sur l'événement au formatage de la section
détail.
Merci

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
ViderTablo ("pr")
NOHM_ = Me.NoHm

req = "SELECT Hm.Programme, Hm.année, hm.session, Hm.Série,
HmCours.Groupe, HmCours.NoCours, Periodes.NoHmCours, hmcours.Groupe,
Periodes.NoProf, Periodes.Période, Periodes.Local, Hm.NoHm,
Jumelages.Conflit FROM Periodes INNER JOIN (Hm INNER JOIN (HmCours
INNER JOIN Jumelages ON HmCours.NoHmCours = Jumelages.NoHmCours) ON
Hm.NoHm = Jumelages.NoHm) ON Periodes.NoHmCours = HmCours.NoHmCours
WHERE (((Hm.NoHm)= " & NOHM_ & ")) ORDER BY periodes.Période"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(req)

If rst.RecordCount > 0 Then ' SI il y a plus d'une période alors on
imprime l'horaire
rst.MoveFirst
Do While Not rst.EOF
'MsgBox rst!Période
Me.Controls("pr" & rst!Période).Value = Me.Controls("pr" & rst!
Période).Value & Left(rst!NoCours, 3) & "-" & Mid(rst!NoCours, 4,
3) & "-" & Mid(rst!NoCours, 7, 2) & " " & rst!Groupe & " " & rst!
Local & vbCrLf
rst.MoveNext
Loop
else ' Sinon ne pas imprimer la page
--- CANCELLER LA PAGE --- ???
End If

End Sub
AfterBoy
Le #6684871
Bon finalement j'ai placé mon critère qui compte les périodes dans ma
requete principale et ca fonctionne merci.


On 21 mai, 20:19, "3stone"
Salut,

Elle est basé sur quoi, ton état ?

Je pense qu'il serait mieux de travailler avec un état et sous-état...

--
A+
Pierre (3stone) Access MVP
Perso:http://www.3stone.be/
MPFA:http://www.mpfa.info/ (infos générales)

"AfterBoy"
Lorsque j'imprime mes horaires, certains d'entres elles sont vides et
n'a aucune période de placées alors je voudrais ne pas imprimer ces
pages pour rien. Je pourrais mettre mon compteur de périodes dans ma
requête principale mais ça ralentirait beaucoup l'impression alors je
veux savoir si ca peut se faire autrement c'est à dire dans l'état
même.

Voici le code dans mon état sur l'événement au formatage de la secti on
détail.
Merci

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
ViderTablo ("pr")
NOHM_ = Me.NoHm

req = "SELECT Hm.Programme, Hm.année, hm.session, Hm.Série,
HmCours.Groupe, HmCours.NoCours, Periodes.NoHmCours, hmcours.Groupe,
Periodes.NoProf, Periodes.Période, Periodes.Local, Hm.NoHm,
Jumelages.Conflit FROM Periodes INNER JOIN (Hm INNER JOIN (HmCours
INNER JOIN Jumelages ON HmCours.NoHmCours = Jumelages.NoHmCours) ON
Hm.NoHm = Jumelages.NoHm) ON Periodes.NoHmCours = HmCours.NoHmCours
WHERE (((Hm.NoHm)= " & NOHM_ & ")) ORDER BY periodes.Période"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(req)

If rst.RecordCount > 0 Then ' SI il y a plus d'une période alors on
imprime l'horaire
rst.MoveFirst
Do While Not rst.EOF
'MsgBox rst!Période
Me.Controls("pr" & rst!Période).Value = Me.Controls("pr" & rst!
Période).Value & Left(rst!NoCours, 3) & "-" & Mid(rst!NoCours, 4,
3) & "-" & Mid(rst!NoCours, 7, 2) & " " & rst!Groupe & " " & rst!
Local & vbCrLf
rst.MoveNext
Loop
else ' Sinon ne pas imprimer la page
--- CANCELLER LA PAGE --- ???
End If

End Sub


Publicité
Poster une réponse
Anonyme