Report_rpt_NbEchanges_Simple_Analyse_croisée

Transcription

Report_rpt_NbEchanges_Simple_Analyse_croisée
Report_rpt_NbEchanges_Simple_Analyse_croisée - 1
Option Compare Database
Private Sub Report_Load()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
strSQLsimple As String
strSQLcroise As String
strYear As String
strDateDebut As String
strDateFin As String
strHeureDebut As String
strHeureFin As String
db As Database
rst As Recordset
'Inputbox permettant de choisir l'année désirée
strYear = InputBox("Veillez entrer l""année désirée selon le format suivant : aaaa")
Me.lbl_Year.Caption = strYear
'Attribue les valeurs de dates aux variables pour la requête SQL
strDateDebut = "12/31/" & strYear - 1
strDateFin = "1/1/" & strYear + 1
'Inputbox permettant de choisir la tranche d""heures désirée
strHeureDebut = InputBox("Veillez entrer l""heure du début de la plage horaire désirée selon le format suivant : hh")
strHeureFin = InputBox("Veillez entrer l""heure de fin de la plage horaire désirée selon le format suivant : hh")
Me.lbl_Heure.Caption = "Entre " & strHeureDebut & "h. et " & strHeureFin & "h."
'Attribue les valeurs d'heures aux variables pour la requête SQL
strHeureDebut = strHeureDebut & ":00:0"
If strHeureFin = "00" Then
strHeureFin = strHeureFin & ":00:0"
Else
strHeureFin = strHeureFin & ":01:0"
End If
'Requête SQL simple qui détermine les enregistrements à prendre en compte
strSQLsimple = "SELECT tbl_Lieu.lieu_Abrev, tbl_Sorte.sor_Sorte, tbl_Journal.jou_Id, tbl_Journal.jou_DateDebut, tbl_Journal.jou_Sup
pr, "
strSQLsimple = strSQLsimple & "tbl_Journal.jou_HeureDebut "
strSQLsimple = strSQLsimple & "FROM (tbl_Journal INNER JOIN tbl_Lieu ON tbl_Journal.jou_lieu_Id = tbl_Lieu.lieu_Id) INNER JOIN "
strSQLsimple = strSQLsimple & "tbl_Sorte ON tbl_Journal.jou_sor_Id = tbl_Sorte.sor_Id "
strSQLsimple = strSQLsimple & "WHERE (((tbl_Journal.jou_DateDebut)<#" & strDateFin & "# And ((tbl_Journal.jou_DateDebut)>#" & strDa
teDebut & "#) AND ((tbl_Journal.jou_Suppr)=False) "
strSQLsimple = strSQLsimple & "AND ((tbl_Journal.jou_HeureDebut)>#12/30/1899 " & strHeureDebut & "#) And ((tbl_Journal.jou_HeureDeb
ut)<#12/30/1899 " & strHeureFin & "#) AND "
Report_rpt_NbEchanges_Simple_Analyse_croisée - 2
strSQLsimple = strSQLsimple & "((tbl_Journal.jou_sor_Id)=1) AND ((tbl_Journal.jou_lieu_Id)=194)) OR (((tbl_Journal.jou_DateDebut)<#
" & strDateFin & "# And "
strSQLsimple = strSQLsimple & "(tbl_Journal.jou_DateDebut)>#" & strDateDebut & "#) AND ((tbl_Journal.jou_Suppr)=False) AND "
strSQLsimple = strSQLsimple & "((tbl_Journal.jou_HeureDebut)>#12/30/1899 " & strHeureDebut & "# And (tbl_Journal.jou_HeureDebut)<#1
2/30/1899 " & strHeureFin & "#) AND "
strSQLsimple = strSQLsimple & "((tbl_Journal.jou_sor_Id)=1) AND ((tbl_Journal.jou_lieu_Id)=196)) OR (((tbl_Journal.jou_DateDebut)<#
" & strDateFin & "# And "
strSQLsimple = strSQLsimple & "(tbl_Journal.jou_DateDebut)>#" & strDateDebut & "#) AND ((tbl_Journal.jou_Suppr)=False) AND ((tbl_Jo
urnal.jou_HeureDebut)>#12/30/1899 " & strHeureDebut & "# "
strSQLsimple = strSQLsimple & "And (tbl_Journal.jou_HeureDebut)<#12/30/1899 " & strHeureFin & "#) AND ((tbl_Journal.jou_sor_Id)=1)
AND "
strSQLsimple = strSQLsimple & "((tbl_Journal.jou_lieu_Id)=197)) OR (((tbl_Journal.jou_DateDebut)<#" & strDateFin & "# And (tbl_Jour
nal.jou_DateDebut)>#" & strDateDebut & "#) "
strSQLsimple = strSQLsimple & "AND ((tbl_Journal_Suppr)=False) AND ((tbl_Journal.jou_HeureDebut)>#12/30/1899 " & strHeureDebut & "#
And "
strSQLsimple = strSQLsimple & "(tbl_Journal.jou_HeureDebut)<#12/30/1899 " & strHeureFin & "#) AND ((tbl_Journal.jou_sor_Id)=1) AND
((tbl_Journal.jou_lieu_Id)=198))) "
strSQLsimple = strSQLsimple & "ORDER BY tbl_Lieu.lieu_Abrev;"
'Requête SQL Croisée qui affiche les résultats désirés
strSQLcroise = "TRANSFORM Count(" & strSQLsimple & ".jou_Id) AS CompteDejou_Id "
strSQLcroise = strSQLcroise & "SELECT " & strSQLsimple & ".lieu_Abrev, Count(" & strSQLsimple & ".jou_Id) AS [Total de jou_Id] "
strSQLcroise = strSQLcroise & "FROM " & strSQLsimple & " "
strSQLcroise = strSQLcroise & "GROUP BY " & strSQLsimple & ".lieu_Abrev "
strSQLcroise = strSQLcroise & "PIVOT Format([jou_DateDebut],""mmm"") In (""janv"",""févr"",""mars"",""avr"",""mai"",""juin"",""juil
"",""août"",""sept"",""oct"",""nov"",""déc""); "
'Ouverture de l""état
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQLcroise, dbOpenDynaset)
'Détermine la SQL comme nouvelle source de l""état
Reports.rpt_NbEchanges_Simple_Analyse_croisée.RecordSource = strSQLcroise
End Sub