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