Public rstSpisok As Recordset 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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 с.)