- •БД содержит три таблицы – РАЙОНЫ, ХОЗЯЙСТВА и СУБСИДИИ.
- •Форма СУБСИДИИ – столбчатая, т.е. каждая запись открывается в отдельном окне. Две формы
- •Группа 56
- •Объект “ActiveX объект MS Date and Time Picker Control” привязан к полю ДАТА
- •Функция Choose возвращает значение из списка аргументов в зависимости от значения 1-го аргумента.
- •Private Sub Группа56_AfterUpdate()
- •‘ Свойство ИСТОЧНИК СТРОК поля ПолеСоСписком22
- •ПолеСоСписком22
- •ПолеСоСписком22 ПолеСоСписком29
- •‘ Событие на кнопке СОРТИРОВАТЬ Private Sub Кнопка15_Click()
- •Private Sub №_платёжного_поручения_DblClick(Cancel As Integer)
БД содержит три таблицы – РАЙОНЫ, ХОЗЯЙСТВА и СУБСИДИИ.
Таблица СУБСИДИИ содержит ссылки на таблицы РАЙОНЫ и ХОЗЯЙСТВА.
Форма СУБСИДИИ – столбчатая, т.е. каждая запись открывается в отдельном окне. Две формы - ленточные
Группа 56 |
Надпись19 |
ПолеСоСписком29
Объект “ActiveX объект MS Date and Time Picker Control” привязан к полю ДАТА таблицы СУБСИДИИ
‘ Код события ПРИ ОБНОВЛЕНИИ DTPicker5
Private Sub DTPicker5_Updated(Code As Integer) Me.Дата = Me.DTPicker5
End Sub
‘Код события ТЕКУЩАЯ ЗАПИСЬ формы СУБСИДИИ
Private Sub Form_Current()
If Me.Группа56 = 3 Then ‘значение ВСЕ
Me.ПолеСоСписком29.Visible = False Me.Надпись19.Visible = False
Else
Me.ПолеСоСписком29 = Me.код_субсидии Me.ПолеСоСписком29.Requery
End If
End Sub
Процедура ПРИ ОБНОВЛЕНИИ заносит выбранное в элементе DTPicker значение в поле ДАТА формы СУБСИДИИ
Функция Choose возвращает значение из списка аргументов в зависимости от значения 1-го аргумента.
Private Sub Группа56_AfterUpdate() |
Код события ПОСЛЕ ОБНОВЛЕНИЯ |
Select Case Me.Группа56 |
объекта ГРУППА56 |
Case 1 |
|
Me.ПолеСоСписком29.Visible = True |
|
Me.Надпись19.Visible = True |
|
‘ настройка и активизация фильтра
Me.Filter = "[вид субсидии]='Региональная'" Me.FilterOn = True Me.ПолеСоСписком29.Requery
Case 2
Me.ПолеСоСписком29.Visible = True Me.Надпись19.Visible = True
‘ настройка и активизация фильтра
Me.Filter = "[вид субсидии]='Федеральная'"
Me.FilterOn = True |
|
|
|
Me.ПолеСоСписком29.Requery |
|
|
|
Case 3 |
|
Событие на кнопке ОТКРЫТЬ ФОРМУ |
|
Me.ПолеСоСписком29.Visible = False |
|||
Me.Надпись19.Visible = False |
|
|
ДЛЯ СОРТИРОВКИ СУБСИДИЙ |
|
Private Sub Кнопка67_Click() |
||
‘ деактивизация фильтра |
|
||
Me.FilterOn = False |
|
DoCmd.OpenForm "Субсидии_ленточная", , , , |
|
End Select |
|
acFormPropertySettings |
|
End Sub |
|
End Sub |
|
‘ Свойство ИСТОЧНИК СТРОК поля ПолеСоСписком22
SELECT DISTINCT Субсидии.код_хозяйства, хозяйства.[наименование хозяйства] FROM хозяйства INNER JOIN Субсидии ON хозяйства.код_хозяйства = Субсидии.код_хозяйства;
ПолеСоСписком22 |
ПолеСоСписком29 |
Поле30
‘свойство ДАННЫЕ Поле30
=Sum([Сумма субсидии])
ПолеСоСписком22 |
ПолеСоСписком29 |
‘ Событие ПОСЛЕ ОБНОВЛЕНИЯ ПолеСоСписком22
Private Sub ПолеСоСписком22_AfterUpdate()
If Not IsNull([Forms]![Субсидии_ленточная]![ПолеСоСписком22]) Then Dim s As String
s = "[код_ района]=" & [Forms]![Субсидии_ленточная]![ПолеСоСписком22]
Me.Filter = s |
|
|
‘ Событие ИЗМЕНЕНИЕ |
||
Me.FilterOn = True |
||
End If |
ПолеСоСписком22 |
|
End Sub |
Private Sub ПолеСоСписком22_Change() |
|
|
Me.ПолеСоСписком22.ForeColor = black |
|
|
Me.ПолеСоСписком29.ForeColor = gray |
|
|
End Sub |
ПолеСоСписком22 ПолеСоСписком29
‘Событие на кнопке УДАЛИТЬ ФИЛЬТРЫ
Private Sub Кнопка23_Click() Me.ПолеСоСписком29 = Null Me.ПолеСоСписком22 = Null Me.ПолеСоСписком29.ForeColor = black Me.ПолеСоСписком22.ForeColor = black Me.FilterOn = False
End Sub
‘Событие на кнопке ПРИМЕНИТЬ ОБА ФИЛЬТРА
Private Sub Кнопка27_Click()
s = "[код_ района]=" & Nz([Forms]![Субсидии_ленточная]![ПолеСоСписком22]) s1=“[код_хозяйства]=" & Nz([Forms]![Субсидии_ленточная]![ПолеСоСписком29]) Me.Filter = s & s1
Me.ПолеСоСписком22.ForeColor = black Me.ПолеСоСписком29.ForeColor = black Me.FilterOn = True
End Sub
‘ Событие на кнопке СОРТИРОВАТЬ Private Sub Кнопка15_Click()
Dim prev As Control, strsql1, s As String, rst1 As Recordset
Set prev = Screen.PreviousControl Select Case prev.Name
Case "код_ района"
strsql1="SELECT Субсидии.код_субсидии, Субсидии.Дата, Субсидии.[№ платёжного поручения], Субсидии.[код_района], Субсидии.код_хозяйства, Субсидии.[Вид субсидии], Субсидии.[Сумма субсидии] FROM хозяйства INNER JOIN (районы INNER JOIN Субсидии ON районы.код_района=Субсидии.[код_ района]) ON хозяйства.код_хозяйства = Субсидии.код_хозяйства ORDER BY районы.[наименование района]"
Case "код_хозяйства"
strsql1 = "SELECT Субсидии.код_субсидии,Субсидии.Дата, Субсидии.[№ платёжного поручения], Субсидии.[код_ района], Субсидии.код_хозяйства, Субсидии.[Вид субсидии], Субсидии.[Сумма субсидии] FROM хозяйства INNER JOIN (районы INNER JOIN Субсидии ON районы.код_района = Субсидии.[код_ района]) ON хозяйства.код_хозяйства = Субсидии.код_хозяйства ORDER BY хозяйства.[наименование хозяйства]"
Case "дата", "№ платёжного поручения", "Вид субсидии", "сумма субсидии" strsql1 = "SELECT Субсидии.код_субсидии,Субсидии.Дата, Субсидии.[№ платёжного поручения], Субсидии.[код_ района], Субсидии.код_хозяйства, Субсидии.[Вид субсидии], Субсидии.[Сумма субсидии] FROM Субсидии order by [" & prev.Name & "]"
End Select
Set rst1 = CurrentDb.OpenRecordset(strsql1, dbOpenDynaset) Set Me.Recordset = rst1
prev.SetFocus End Sub