Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
26.05.2015
Размер:
273.41 Кб
Скачать

БД содержит три таблицы – РАЙОНЫ, ХОЗЯЙСТВА и СУБСИДИИ.

Таблица СУБСИДИИ содержит ссылки на таблицы РАЙОНЫ и ХОЗЯЙСТВА.

Форма СУБСИДИИ – столбчатая, т.е. каждая запись открывается в отдельном окне. Две формы - ленточные

Группа 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