Обучающая программа по предмету "Базы данных"

Автор работы: Пользователь скрыл имя, 17 Июня 2012 в 20:52, курсовая работа

Описание работы

Задачи проекта:
1. Анализ предметной области
2. Проектирование базы данных средствами MS ACCESS
3. Разработка приложения средствами VBA
4. Защита БД

Содержание работы

Введение 4
1.Общая часть 6
1.1. Обзор и анализ предметной области 6
1.2. Жизненный цикл базы данных 7
1.3. Защита базы данных 9
1.4. Выбор и характеристика СУБД 13
1.5. Выбор и характеристика среды разработки приложения. 15
2. Специальная часть. 19
2.1. Постановка задачи: 19
2.2. Логическая схема БД 20
2.3. Описание таблиц 21
2.4. Другие объекты базы данных 23
2.5. Разработка приложений 25
2.6. Выбор способа защиты базы данных 27
2.7. Инструкция пользователю 28
Заключение 29
Список литературы 30

Файлы: 1 файл

пояснительная записка.docx

— 173.01 Кб (Скачать файл)

Loop

rst3.MoveFirst

o4.SetFocus

Do Until rst3.EOF

If rst3.Fields("н_ответа").Value = o4.Value Then

o4.Value = rst3.Fields("ответ").Value

End If

rst3.MoveNext

Loop

End If

End Sub

 

Sub o4_DblClick(Cancel As Integer)

Set db = CurrentDb

Set vv = db.OpenRecordset("testnew", dbOpenDynaset)

Set rst = db.OpenRecordset("select [н_темы],[вопрос],[н_правильного_ответа] from [вопросы] where [н_темы] like '" & ntem & "'", dbOpenSnapshot)

vv.AddNew

vv.Fields("Номер_вопроса").Value = i

vv.Fields("н_ответа").Value = op4

vv.Fields("н_правильного_ответа").Value = prav

vv.Update

i = i + 1

If ysl = schotchik Then

vv.MoveFirst

Do Until vv.EOF

If vv.Fields("н_ответа").Value = vv.Fields("н_правильного_ответа").Value Then 'озз - считать правильные ответы.

ozz = ozz + 1

End If

vv.MoveNext

Loop

If ozz >= kr3 Then

otm = "3"

Else

otm = "2"

End If

If ozz >= kr4 Then

otm = "4"

End If

If ozz >= kr5 Then

otm = "5"

End If

Set rez = db.OpenRecordset("результаты", dbOpenDynaset) 'выставить оценку в результаты

Do Until rez.EOF

If rez.Fields("н_рез").Value = nr Then

rez.Edit

rez.Fields("результат").Value = otm

rez.Update

End If

rez.MoveNext

Loop

MsgBox ("Ваш результат  по пройденной теме '" & otm & "'")

DoCmd.Close

stDocName = "Загрузка" 'выход  из формы

DoCmd.openform stDocName, , , stLinkCriteria

Else

schotchik = schotchik + 1

Set viv = db.OpenRecordset("select * from [вывод_на_экран] where [н_темы] like '" & ntem & "' and [н_вопроса] like  '" & i & "'  ", dbOpenSnapshot)

For v = 1 To schotchik - 1

rst.MoveNext

Next

rst2.MoveFirst

rst3.MoveFirst

vopr.SetFocus

vopr.Value = rst.Fields("вопрос").Value

vopros = vopr.Value

Do Until rst.EOF

vopr.SetFocus

If rst.Fields("вопрос").Value = vopros Then

prav = rst.Fields("н_правильного_ответа").Value

End If

rst.MoveNext

Loop

nv.Value = i

k = 0

viv.MoveFirst

Do Until viv.EOF

k = k + 1

If k = 1 Then

o1.SetFocus

o1.Value = viv.Fields("н_ответа").Value

op1 = viv.Fields("н_ответа").Value

End If

If k = 2 Then

o2.SetFocus

o2.Value = viv.Fields("н_ответа").Value

op2 = viv.Fields("н_ответа").Value

End If

If k = 3 Then

o3.SetFocus

o3.Value = viv.Fields("н_ответа").Value

op3 = viv.Fields("н_ответа").Value

End If

If k = 4 Then

o4.SetFocus

o4.Value = viv.Fields("н_ответа").Value

op4 = viv.Fields("н_ответа").Value

End If

viv.MoveNext

Loop

rst3.MoveFirst

o1.SetFocus

Do Until rst3.EOF

If rst3.Fields("н_ответа").Value = o1.Value Then

o1.Value = rst3.Fields("ответ").Value

End If

rst3.MoveNext

Loop

rst3.MoveFirst

o2.SetFocus

Do Until rst3.EOF

If rst3.Fields("н_ответа").Value = o2.Value Then

o2.Value = rst3.Fields("ответ").Value

End If

rst3.MoveNext

Loop

rst3.MoveFirst

o3.SetFocus

Do Until rst3.EOF

If rst3.Fields("н_ответа").Value = o3.Value Then

o3.Value = rst3.Fields("ответ").Value

End If

rst3.MoveNext

Loop

rst3.MoveFirst

o4.SetFocus

Do Until rst3.EOF

If rst3.Fields("н_ответа").Value = o4.Value Then

o4.Value = rst3.Fields("ответ").Value

End If

rst3.MoveNext

Loop

End If

End Sub

Private Sub выход_Click()

Set db = CurrentDb

vv.MoveFirst

Do Until vv.EOF

If vv.Fields("н_ответа").Value = vv.Fields("н_правильного_ответа").Value Then 'озз - считать правильные ответы.

ozz = ozz + 1

End If

vv.MoveNext

Loop

If ozz >= kr3 Then

otm = "3"

Else

otm = "2"

End If

If ozz >= kr4 Then

otm = "4"

End If

If ozz >= kr5 Then

otm = "5"

End If

Set rez = db.OpenRecordset("результаты", dbOpenDynaset) 'выставить оценку в результаты

Do Until rez.EOF

If rez.Fields("н_рез").Value = nr Then

rez.Edit

rez.Fields("результат").Value = otm

rez.Update

End If

rez.MoveNext

Loop

MsgBox ("Ваш результат  по пройденной теме '" & otm & "'")

DoCmd.Close

stDocName = "Загрузка" 'выход  из формы

DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

Form2p  ‘’ вход от лица преподавателя

Option Compare Database

Private Sub кн_пер_Click()

Dim db As Database, rst As DAO.Recordset, str As String, A, B  As String

Set db = CurrentDb

Set rst = db.OpenRecordset("select * from password", dbOpenDynaset)

If IsNull(lbl1.Value) = True Then

MsgBox ("пароль не введён")

Else

    B = lbl1.Value

    A = rst.Fields("pass").Value

    If A = B Then

    On Error GoTo Err_кн_пер_Click

 

    Dim stDocName As String

    Dim stLinkCriteria As String

DoCmd.Close

    stDocName = "form3p"

    DoCmd.openform stDocName, , , stLinkCriteria

Exit_кн_пер_Click:

    Exit Sub

Err_кн_пер_Click:

    MsgBox Err.Description

    Resume Exit_кн_пер_Click

    Else

    MsgBox ("Пароль неверен")

    End If

End If

lbl1.SetFocus

lbl1.Value = Null

End Sub

 

Private Sub Кнопка7_Click()

DoCmd.Close

stDocName = "Загрузка"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

 

Form3p  ‘’ загрузка формы для работы преподавателя

Option Compare Database

Dim stDocName As String

    Dim stLinkCriteria As String

  

Private Sub del_Click()

stDocName = "Удаление"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

Private Sub dob_Click()

stDocName = "ДобавлениеСтуд"

DoCmd.openform stDocName, , , stLinkCriteria

End Sub

Private Sub izm_Click()

Dim db As Database, rst As DAO.Recordset

Set db = CurrentDb

Set rst = db.OpenRecordset("оценивание", dbOpenDynaset)

onotole.Visible = False

izm1.Visible = True

izm21.Visible = True

izm31.Visible = True

izm41.Visible = True

izm2.Visible = True

izm3.Visible = True

izm4.Visible = True

izmkn.Visible = True

rst.MoveFirst

Do Until rst.EOF

If rst.Fields("оценка") = 5 Then

izm41.SetFocus

izm41.Value = rst.Fields("кол_отв").Value

End If

rst.MoveNext

Loop

rst.MoveFirst

Do Until rst.EOF

If rst.Fields("оценка") = 4 Then

izm31.SetFocus

izm31.Value = rst.Fields("кол_отв").Value

End If

rst.MoveNext

Loop

rst.MoveFirst

Do Until rst.EOF

If rst.Fields("оценка") = 3 Then

izm21.SetFocus

izm21.Value = rst.Fields("кол_отв").Value

End If

rst.MoveNext

Loop

End Sub

 

Private Sub izmkn_Click()

Dim db As Database, rst As DAO.Recordset

Set db = CurrentDb

Set rst = db.OpenRecordset("оценивание", dbOpenDynaset)

Do Until rst.EOF

If rst.Fields("оценка") = 5 Then

rst.Edit

rst.Fields("кол_отв").Value = izm41.Value

rst.Update

End If

If rst.Fields("оценка") = 4 Then

rst.Edit

rst.Fields("кол_отв").Value = izm31.Value

rst.Update

End If

If rst.Fields("оценка") = 3 Then

rst.Edit

rst.Fields("кол_отв").Value = izm21.Value

rst.Update

End If

rst.MoveNext

Loop

red.SetFocus

izm1.Visible = False

izm21.Visible = False

izm31.Visible = False

izm41.Visible = False

izm2.Visible = False

izm3.Visible = False

izm4.Visible = False

izm.SetFocus

izmkn.Visible = False

izmy.Visible = True

izmkn2.Visible = True

End Sub

 

Private Sub izmkn2_Click()

izm.SetFocus

izmkn2.Visible = False

izmy.Visible = False

onotole.Visible = True

End Sub

 

Private Sub red_Click()

stDocName = "редстуд"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

Private Sub Кнопка23_Click()

stDocName = "добавтему"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

Private Sub Кнопка24_Click()

stDocName = "редтему"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

Private Sub Кнопка27_Click()

Set db = CurrentDb

Set rez = db.OpenRecordset("результаты", dbOpenDynaset)

If rez.RecordCount = 0 Then

   MsgBox ("нет записей")

Else

      stDocName = "чр"

      DoCmd.openform stDocName, , , stLinkCriteria

    End If

End Sub

 

Private Sub Кнопка28_Click()

DoCmd.Close

stDocName = "Загрузка"

    DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

Private Sub пр_рез_Click()

On Error GoTo Err_пр_рез_Click

    stDocName = "результаты"

    DoCmd.openform stDocName, , , stLinkCriteria

Exit_пр_рез_Click:

    Exit Sub

Err_пр_рез_Click:

    MsgBox Err.Description

    Resume Exit_пр_рез_Click

End Sub

 

ДобавлениеСтудента    

Option Compare Database

Dim stDocName As String

    Dim stLinkCriteria As String

 

Private Sub Кнопка1_Click()

Dim db As Database, rst As DAO.Recordset

Set db = CurrentDb

Set rst = db.OpenRecordset("студенты", dbOpenDynaset)

Set rst2 = db.OpenRecordset("пароли", dbOpenDynaset)

If (((im <> emty) Or (IsNull(im.Value) <> True)) And ((fam <> emty) Or (IsNull(fam.Value) <> True)) And ((gr <> emty) Or (IsNull(gr.Value) <> True)) And ((snp <> emty) Or (IsNull(snp.Value) <> True)) And ((lp <> emty) Or (IsNull(lp.Value) = True))) Then

rst.AddNew

snp.SetFocus

rst.Fields("н_паспорта").Value = snp

im.SetFocus

rst.Fields("имя").Value = im

fam.SetFocus

rst.Fields("фамилия").Value = fam

gr.SetFocus

rst.Fields("н_группы").Value = gr

rst.Update

 

rst2.AddNew

snp.SetFocus

rst2.Fields("н_паспорта").Value = snp.Value

lp.SetFocus

rst2.Fields("пароль").Value = lp.Value

rst2.Update

fam.SetFocus

MsgBox ("Студент добавлен.")

okface.Visible = False

fuckyeahface.Visible = True

Else

MsgBox ("Какое-то поле  не заполнено!")

rock.Visible = False

okface.Visible = True

End If

snp.SetFocus

snp.Value = Empty

im.SetFocus

im.Value = Empty

fam.SetFocus

fam.Value = Empty

gr.SetFocus

gr.Value = Empty

lp.SetFocus

lp.Value = Empty

End Sub

 

Sub кнопка10_click()

snp.SetFocus

snp.Value = Empty

im.SetFocus

im.Value = Empty

fam.SetFocus

fam.Value = Empty

gr.SetFocus

gr.Value = Empty

stDocName = "form3p"

DoCmd.openform stDocName, , , stLinkCriteria

End Sub

Private Sub Кнопка13_Click()

DoCmd.Close

stDocName = "form3p"

DoCmd.openform stDocName, , , stLinkCriteria

End Sub

 

РедСтудента   ‘’редактирование студентов

Информация о работе Обучающая программа по предмету "Базы данных"