|
|
Фильтрация отчёта при открытии - По данным полей формы (+ Пример)
Довольно простой (и надеюсь понятный) пример вывода отчёта по диапазону дат.
Отчёт:
Код из примера:
Private Sub cbMonth_AfterUpdate()
If Me!cbMonth.ListIndex <> -1 Then
Me!От = DateSerial(Me!cbYear, Me!cbMonth, 1)
Me!До = DateSerial(Me!cbYear, Me!cbMonth + 1, 0)
Else
Me!От = Null
Me!До = Null
End If
End Sub
Private Sub cbYear_AfterUpdate()
cbMonth_AfterUpdate
End Sub
Private Sub cmdReport_Click()
Dim sFilter$
sFilter = "Дата Between " & _
Format$(Nz(Me!От, 0), "\#mm\/dd\/yyyy\#") & _
" And " & _
Format$(Nz(Me!До, 999999), "\#mm\/dd\/yyyy\#")
DoCmd.OpenReport "Объем Работ - За Период", acViewReport, "", sFilter
Me.Visible = False
End Sub
Private Sub Form_Current()
Dim v As Variant
On Error GoTo Form_Current_Err
v = DLast("Дата", "Работы")
If IsDate(v) = True Then
Me!cbYear = Year(v)
Me!cbMonth = Month(v)
cbMonth_AfterUpdate
End If
Form_Current_Bye:
Exit Sub
Form_Current_Err:
Err.Clear
Resume Form_Current_Bye
End Sub
В отчёте:
Private Sub Report_Close()
On Error Resume Next
Forms("Объем работ за период").Visible = True
Err.Clear
End Sub
MSA-2010 ( 90 kB) Пример
|
|