пластмас | 320 | 422 300,00 | Велике підприємство
ТзОВ “Рокос” | вул. Конського, 24 | 06.05.04 | Селепій І.М. | Мінеральні води | 103 | 56 400,00 | Мале підприємство
ТзОВ “Стела” | вул. Чорного, 144 | 06.03.02 | Токарчук В.В. | Хліб | 69 | 23 400,00 грн. | Мале підприємство
запит naklejka_z в режимі SQL:
SELECT Pidpryjemstvo.Naz_pp, Pidpryjemstvo.Adr_pp, Pidpryjemstvo.Data, Pidpryjemstvo.Kerivnyk, Dialnist.Vud_dialnist, Pidpryjemstvo.Klk_rob_m, Pidpryjemstvo.Stat_fond, IIf([Stat_fond]>100000,"Велике підприємство","Мале підприємство") AS Statys
FROM Dialnist INNER JOIN Pidpryjemstvo ON Dialnist.Kod_dialnist = Pidpryjemstvo.Kod_dialnist
GROUP BY Pidpryjemstvo.Naz_pp, Pidpryjemstvo.Adr_pp, Pidpryjemstvo.Data, Pidpryjemstvo.Kerivnyk, Dialnist.Vud_dialnist, Pidpryjemstvo.Klk_rob_m, Pidpryjemstvo.Stat_fond, IIf([Stat_fond]>100000,"Велике підприємство","Мале підприємство");
3.4. Виготовлення звітів
Звіти будемо виготовляти за допомогою майстра звітів
У вікні База даних виберемо об’єкт Звіт, виконаємо команду Створити. Появляється вікно Новий звіт, вибираємо у нижній його частині джерело, а в верхній – майстра.
На основі запиту 5r_zvit_zp створюємо звіт 15r_zvit.
Отчеты -> Создать -> Мастер отчетов
Для створення графіка за умовою задачі 5 викличемо майстра діаграм, виберемо джерело – запит grafik_z. Відповідаючи на кроки майстра, виберемо всі поля, тип – графік. Назвемо діаграму Grafik.
Отчеты -> Создать -> Мастер диаграм
вибираємо запит для графіка:
вибираємо поля даних, які необхідно відобразити в діаграмі
вибираємо тип діаграми (в нашому випадку графік)
вибираємо тип відображення даних на графіку
Графік створений майстром:
Відредагуємо даний графік за допомогою конструктора:
Звіт за умовою задачі 6 виготовимо за допомогою майстра. Його будемо виготовляти аналогічно до першого звіту
На основі запиту 5r_zvit_zp створюємо звіт 15r_zvit.
Отчеты -> Создать -> Мастер отчетов
Для виготовлення поштової наклейки за умовою задачі 8 На основі запиту naklejka_z за допомогою конструктора створюємо поштову наклейку. (Поштову наклейку можна також створювати за допомогою майстра:
Отчеты -> Создать -> Почтовые наклейки)
3.5. Конструювання форм
На основі запиту forma_1 за допомогою майстра створюємо головну форму.
Форма forma_1 виготовлена майстром:
Створену майстром форму відредагуємо за допомогою конструктора:
На форму додатково внесли кнопки, за допомогою яких можна переглянути звіти і графіки, також додати нові і обновити дані форми.
Форма forma_1 дозволяє лише переглядати дані, тому для забезпечення доповнення бази даних відомостями про нові підприємства і види діяльності, створюємо підпорядковані форми Pidpryjemstvo і Dialnist.
Форма Pidpryjemstvo (створюється в тому порядку, що і головна форма), дозволяє лише додавати нові дані.
Форма обладнана кнопками:
Додати підприємство (занесення даних в таблицю)
Очистити (очищає всі поля)
Вийти (вихід до головної форми)
Форма Dialnist (створюється в тому порядку, що і головна форма), дозволяє лише додавати нові дані.
Форма обладнана кнопками:
Додати (занесення даних в таблицю)
Очистити (очищає всі поля)
Кнопка для закриття форми (вихід до головної форми)
Форми:
3.6. Виготовлення звітів засобами мови Visual Basic for Application
Для програмування модуля відкриємо редактора VBA (об’єкт Модулі) з вікна База даних. Для виготовлення звіту за умовою задачі 4 може послужити процедура-підпрограма. Назвемо її Zvit_2(), текст підпрограми має вигляд:
Option Compare Database
Option Explicit
Option Base 1
Sub Zvit_2()
Dim Kod_dialnist(100) As Integer, Vud_dialnist(100) As String * 15
Dim Naz_pp(100) As String * 18, Adr_pp(100) As String * 15, Data(100) As Date, Kerivnyk(100) As String * 15, kod_dialnist_p(100) As Integer, kilk_rob_m(100) As Integer, Stat_fond(100) As Single
Dim kp As Integer, i As Integer, zvit As String
Dim ars As New ADODB.Recordset
Set ars = New ADODB.Recordset
ars.Open "Dialnist", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
ars.MoveFirst
i = 1
While Not ars.EOF
Kod_dialnist(i) = ars.Fields(0).Value
Vud_dialnist(i) = ars.Fields(1).Value
i = i + 1
ars.MoveNext
Wend
ars.Close
Set ars = Nothing
ars.Open "Pidpryjemstvo", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
ars.MoveFirst
kp = 1
While Not ars.EOF
Naz_pp(kp) = ars.Fields(1).Value
Adr_pp(kp) = ars.Fields(2).Value
Data(kp) = ars.Fields(3).Value
Stat_fond(kp) = ars.Fields(4).Value
Kerivnyk(kp) = ars.Fields(5).Value
kod_dialnist_p(kp) = ars.Fields(6).Value
kilk_rob_m(kp) = ars.Fields(7).Value
kp = kp + 1
ars.MoveNext
Wend
'Формуємо заголовок звіту
zvit = Chr(9) + Chr(9) + Chr(9) + Chr(9) + "Звіт про хід реєстрації малих підприємтсв" + Chr(13) + Chr(10)
For i = 1 To 152
zvit = zvit + "-"
Next i
zvit = zvit + Chr(13) + Chr(10)
zvit = zvit + "Підприємство" + Chr(9)
zvit = zvit + "Адреса" + Chr(9) + Chr(9)
zvit = zvit + "Дата реєстрації" + Chr(9)
zvit = zvit + "Керівник" + Chr(9)
zvit = zvit + Chr(9) + "Діяльність" + Chr(9)
zvit = zvit + Chr(9) + "К-сть роб місць"
zvit = zvit + Chr(13) + Chr(10)
For i = 1 To 152
zvit = zvit + "-"
Next i
zvit = zvit + Chr(13) + Chr(10)
For i = 1 To kp - 1
If Stat_fond(i) <= 100000 Then
'Формуємо повідомлення для звіту
zvit = zvit + Naz_pp(i) + Chr(9)
zvit = zvit + Adr_pp(i) + Chr(9)
zvit = zvit + Str(Data(i)) + Chr(9)
zvit = zvit + Chr(9) + Kerivnyk(i) + Chr(9)
zvit = zvit + Vud_dialnist(kod_dialnist_p(i)) + Chr(9)
zvit = zvit + Chr(9) + Str(kilk_rob_m(i))
zvit = zvit + Chr(13) + Chr(10)
End If
Next i
MsgBox zvit
ars.Close
Set ars = Nothing
End Sub
3.7. Застосування та редагування макроса кнопки
Private Sub Кнопка26_Click()
On Error GoTo Err_Кнопка26_Click
Dim stDocName As String, dd As Integer
dd = MsgBox("Показати звіт, виданий програмою?", vbOKCancel, "Вибір типу звіту")
If dd = vbOK Then Call Zvit2
If dd = vbCancel Then
stDocName = "rejestr_mp_zvit2"
DoCmd.OpenReport stDocName, acPreview
End If
Exit_Кнопка26_Click:
Exit Sub
Err_Кнопка26_Click:
MsgBox Err.Description
Resume Exit_Кнопка26_Click
End Sub
3.8. Аналіз результатів виконання програм
Програму можна умовно поділити на дві частини. У першій частині відбувається відкриття таблиць і заповнення масивів. Друга служить для формування власне звіту (змінна zv) відповідно до встановлених умов. Для читання таблиць використовується об’єкт Recordset. Для відкриття таблиць служить метод Open цього об’єкта. Перехід на початок таблиці, тобто забезпечення її читання з самого початку, відбувається за допомогою методу aRS.MoveFirst. Перехід на наступний запис забезпечує метод aRS.MoveNext. В даному випадку звіт не займає великого об’єму пам’яті, тому для його відображення на екрані використано вікно MsgBox.
Перелік