Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Public rstSpisok As Recordset
Private Sub cmbCancel_Click() FrmPrint.Hide End Sub Private Sub cmbPrint_Click() Dim strPrint As String Dim i As Integer Set Printer = Printers(0) Printer.Font.Name = "Times New Roman" Printer.Font.Size = 14 For i = 0 To lstPrint.ListCount - 1 Printer.Print lstPrint.List(i) Next i Printer.EndDoc End Sub Private Sub Form_Activate() Dim i As Long LstPrint.Clear If rstSpisok.EOF And rstSpisok.BOF Then Exit Sub lstPrint.AddItem "СПИСОК УЧАЩИХСЯ КОМПЬЮТЕРНОЙ ШКОЛЫ" lstPrint.AddItem "" i = 1 RstSpisok.MoveLast RstSpisok.MoveFirst While Not (rstSpisok.EOF) lstPrint.AddItem CStr(i) + ". " + rstSpisok.Fields("Familie") + " " + rstSpisok.Fields("Imja") + " группа: " + CStr(rstSpisok.Fields("Group").Value) i = i + 1 RstSpisok.MoveNext Wend End Sub Private Sub Form_Load() Set dbsData = OpenDatabase("dbLaba.mdb") Set rstSpisok = dbsData.OpenRecordset("Spisok", dbOpenDynaset) End Sub
Сохраните проект. Проверьте работу приложения. В момент запуска формы frmPrint на экране отображаются данные в том виде, в каком они будут отправлены на печать. Уточните у преподавателя или лаборанта возможность распечатки списка, или дождитесь, пока преподаватель продемонстрирует работу данной функции всем студентам. Запрограммируем работу пункта меню «Статистика». В данной части работы рассмотрим различные способы обработки числовой информации из БД. Создайте новую форму (frmStat) и разместите на ней элементы (txtKol, txtSrBall, txtWord, txtExel, txtAccss, cmbOk).
Следующий программный код реализует подсчет заданных значений.
Public dbsData As Database Public rst As Recordset Private Sub cmbOk_Click() FrmStat.Hide End Sub Private Sub Form_Activate() Dim i As Long Dim s As Long Dim n As Long Dim strSQL As String Set rst = dbsData.OpenRecordset("Spisok", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst If rst.EOF And rst.BOF Then txtKol.Text = "" txtSrBall.Text = "" txtWord.Text = "" txtExel.Text = "" txtAccess.Text = "" Exit Sub End If ' общее количество студентов соответствует количеству записей в таблице Spisok txtKol.Text = rst.RecordCount Rst.Close ' для подсчета общего балла достаточно взять все оценки из таблицы Ocenki Set rst = dbsData.OpenRecordset("Ocenki", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst If rst.EOF And rst.BOF Then txtSrBall.Text = "0" End If s = 0 For i = 1 To rst.RecordCount s = s + rst.Fields("Ocenka").Value Rst.MoveNext Next i ' при подсчете среднего получится вещественное число, представим его в форматированном виде txtSrBall.Text = Format(s / rst.RecordCount, "0.00")
Rst.Close ' подсчитаем оценки с кодом предмета 1 (Word) Set rst = dbsData.OpenRecordset("Ocenki", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst If rst.EOF And rst.BOF Then txtWord.Text = "0" Else s = 0 n = 0 For i = 1 To rst.RecordCount If rst.Fields("CodPredm").Value = 1 Then s = s + rst.Fields("Ocenka").Value n = n + 1 End If Rst.MoveNext Next i If n = 0 Then txtWord.Text = "0" Else txtWord.Text = Format(s / n, "0.00") End If End If Rst.Close ' сформируем запрос который будет содержать только оценки с кодом предмета 2 (Exel) Set rst = dbsData.OpenRecordset("Select * From Ocenki Where CodPredm = 2", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst If rst.EOF And rst.BOF Then txtExel.Text = "0" Else s = 0 For i = 1 To rst.RecordCount s = s + rst.Fields("Ocenka").Value Rst.MoveNext Next i txtExel.Text = Format(s / rst.RecordCount, "0.00") End If Rst.Close ' и самый простой вариант - подсчет произвести с помощью SQL запроса strSQL = "SELECT Sum([Ocenki]![Ocenka])/Count([Ocenki]![Ocenka]) AS Access " & _ "From Ocenki WHERE (((Ocenki.CodPredm)=3));" Set rst = dbsData.OpenRecordset(strSQL, dbOpenDynaset) Rst.MoveFirst If IsNull(rst.Fields("Access")) Then txtAccess.Text = "0" Else txtAccess.Text = Format(rst.Fields("Access"), "0.00") End If Rst.Close End Sub Private Sub Form_Load() Set dbsData = OpenDatabase("dbLaba.mdb") End Sub
Протестируйте приложение полностью, проверьте работу всех функциональных возможностей. По окончании скомпилируйте exe-файл своей работы (File – Make Project1.exe), указав свое имя проекта и предоставьте преподавателю для защиты.
Лабораторная работа №6.
|
|||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 157; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.44.223 (0.012 с.) |