s As Single, i As Integer, slo As String
Dim reRS As New ADODB.Recordset, nvRS As New ADODB.Recordset
reRS.Open "realiz", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
nvRS.Open "vurobu", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
slo = " Звіт про сумарний прибуток" + Chr(13) + Chr(10)
slo = slo + " фірми <Золотий вік> за кожний товар" + Chr(13) + Chr(10)
slo = slo + " станом на " + Str(Date) + Chr(13) + Chr(10)
slo = slo + Chr(13) + Chr(10)
slo = slo + "Назва виробу" + Space(38) + "Прибуток" + Chr(13) + Chr(10)
slo = slo + String(60, "-") + Chr(13) + Chr(10)
For i = 1 To nvRS.RecordCount
s = 0
reRS.MoveFirst
While Not reRS.EOF
b = nvRS("kod vur").Value = reRS("kod vur").Value
b = b And Year(reRS(4).Value) = Year(Date)
If b Then s = s + reRS.Fields(3).Value * nvRS.Fields(2).Value * 0.2
reRS.MoveNext
Wend
If (s <> 0) Then slo = slo + nvRS("naz vur").Value + Chr(9) + Chr(9) + Chr(9) + Str(s) + " грн." + Chr(13) + Chr(10)
nvRS.MoveNext
Next i
nvRS.Close: Set nvRS = Nothing
reRS.Close: Set reRS = Nothing
MsgBox slo
End Sub
3.7 Застосування та редагування макроса кнопки
Private Sub Кнопка25_Click()
On Error GoTo Err_Кнопка25_Click
Dim stDocName As String, dd As Integer
dd = MsgBox("Показати звіт, виданий програмою?", vbOKCancel, "Вибір типу звіту")
If dd = vbOK Then Call zvit
If dd = vbCancel Then
stDocName = "prubytok"
DoCmd.OpenReport stDocName, acPreview
End If
Exit_Кнопка25_Click: Exit Sub
Err_Кнопка25_Click: MsgBox Err.Description
Resume Exit_Кнопка26_Click
End Sub
Графічний алгоритм програми Zvit() показаним на рис. 3.22. Програму можна умовно поділити на дві частини. У першій частині відбувається відкриття таблиць і підрахунок сумарної виручки для кожної фірми. Друга служить для формування власне звіту (змінна slo) на основі даних таблиць. Для читання таблиць використовується об’єкт Recordset. Для відкриття таблиць служить метод Open цього об’єкта. Перехід на початок таблиці, тобто забезпечення її читання з самого початку, відбувається за допомогою методу reRS.MoveFirst. Перехід на наступний запис забезпечує метод nvRS.MoveNext. В даному випадку звіт не займає великого об’єму пам’яті, тому для його відображення на екрані використано вікно MsgBox.
Рис. 3.22 -– Графічний алгоритм програми Zvit()
3.8. Аналіз результатів виконання програм
Під час випробування програми Zvit() на формі forma виднілася поточна дата. Таблиця vurobu містила 4 записи про назви, таблиця realiz містили інформацію про прибуток в поточному році. Результат вийшов такий:
Назва виробу | Кількість виготовленого
Вилка ДД-В-07-ЕЗ | 15
Плита П45 | 17
Контактор ЛКК17 | 84
Корпус К4 | 60
Даний результат відповідає результату відображеному в звіті.
3.9. Таблиця ідентифікаторів програм
reRS | Набір записів з таблиці про реалізацію товарів
nvRS | Набір записів з таблиці про товари
slo | Текст звіту | Zvit()
b | Накопичення умови відбору записів
s | Сумарний прибуток для кожного виробу
i | Параметр зовнішнього циклу
dd | Результат вибору кнопки вікна MsgBox | Кнопка25_Click()
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ
Клим Б.В., Юрчишин В.М. Організація баз даних та знань. Конспект лекцій – м. Ів-Франківськ: Факел, 2004
Грабер М. Введение в SQL. - М.: Лори, 1996. - 379 с.
Дейт К. Введение в системы баз данных //6-издание. - Киев: Диалектика, 1998. - 784 с.
Інформатика: Комп’ютерна техніка. Комп’ютерні технології./За ред. О.І. Пушкаря – К.: Видавничий центр “Академія”, 2001
Киммел П. Освой самостоятельно программирование для Microsoft Access 2000 за 24 часа.:Пер. с англ.: Уч. пос. – М.: Издательский дом "Вильямс", 2000
Келли Д. Самоучитель Access 97 – СПб: Издательство "Питер", 2000
Пасько В. Ассess 97 (руссифицированная версия) – К.: Издательская группа BHV, 1997