Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment ne pas imprimer certaines pages d'un état

2 réponses
Avatar
AfterBoy
Bonjour,

Lorsque j'imprime mes horaires, certains d'entres elles sont vides et
n'a aucune p=E9riode de plac=E9es alors je voudrais ne pas imprimer ces
pages pour rien. Je pourrais mettre mon compteur de p=E9riodes dans ma
requ=EAte principale mais =E7a ralentirait beaucoup l'impression alors je
veux savoir si ca peut se faire autrement c'est =E0 dire dans l'=E9tat
m=EAme.

Voici le code dans mon =E9tat sur l'=E9v=E9nement au formatage de la section=

d=E9tail.
Merci

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

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

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

If rst.RecordCount > 0 Then ' SI il y a plus d'une p=E9riode alors on
imprime l'horaire
rst.MoveFirst
Do While Not rst.EOF
'MsgBox rst!P=E9riode
Me.Controls("pr" & rst!P=E9riode).Value =3D Me.Controls("pr" & rst!
P=E9riode).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

2 réponses

Avatar
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 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
Avatar
AfterBoy
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" wrote:
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