Bonjour tout le monde ....
Voici un bout de code que vous pouvez placer dans la procédure activate du datareport
Ici on passe en paramètre dans une variables timedate (public à l'ensemble de l'application)
la date choisi par l'utilisateur de manière à la faire intervenir dans la close WHERE de la requête qui définit le recordset.
Pour m'être posé la question et torturé l'esprit je vais vous brieffer sur la manière dont j'ai procédé :
- Tout dabord je créer le dataenvironnement et configure sa connection (sans faire intervenir de code)
- Ensuite je créer une commande(ici nommée command1)
- Je configure cette commande en lui adressant non pas une requête SQL mais une vue provenant de ma base.
- Ensuite de manière à reconfigurer le recordset en fonction de ce que l'utilisateur aura choisi comme date je reconfigure la commande et le recordset qui lui est associé lors du chargement (activate) du datareport.
Option Explicit
Private Sub DataReport_Activate() Dim timedate, SQL As String
timedate = frmdate.strdate
SQL = " SELECT DISTINCTROW problems.id, problems.uid, problems.status, problems.time_spent," & _
" Format$(problems.close_date,'mmmm yyyy') AS [close_date par mois], problems.title, Format$(problems.start_date,'mmmm yyyy')" & _
" AS [start_date par mois], tblUsers.sid, tblUsers.uid, tblUsers.fname" & _
" FROM tblUsers INNER JOIN problems ON tblUsers.sid = problems.rep" & _
" Where Month(problems.start_date) Like " & Month(timedate) & " And Year(problems.start_date)" & _
" Like " & Year(timedate) & _
" GROUP BY problems.id, problems.uid, problems.status, problems.time_spent," & _
" Format$(problems.close_date,'mmmm yyyy'), problems.title, Format$(problems.start_date,'mmmm yyyy')," & _
" tblUsers.sid, tblUsers.uid, tblUsers.fname, Year(problems.close_date)*12+DatePart('m',problems.close_date)" & _
" -1, Year(problems.start_date)*12+DatePart('m',problems.start_date)-1; "
DataEnvironment2.rsCommand1.Close
DataEnvironment2.rsCommand1.Source = SQL
DataEnvironment2.rsCommand1.Open
DatareportSysdte.Refresh
DatareportSysdte.Sections("section4").Controls("label11").Caption = Format(frmdate.strdate, "Mmmm yyyy")
End Sub
Pour information soyez indulgent avec moi je ne suis que débutant, mais pour sûre ça fonctionne ! ! !
DarkAngel