Автор работы: Пользователь скрыл имя, 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
2.7.1. Общие
сведения об информационной
Информационная система –
В данной базе информационной системой является пакет Microsoft Office Access 2007.
2.7.2. Требования к техническим средствам
Данный курсовой проект был
посвящен созданию базы данных и обучающей
программы по предмету «Базы данных».
В проекте структура
При более глубокой реализации проекта, можно было создать сервер, благодаря которому этой программой могут пользоваться не только студенты колледжа, но и далёкие от учебного заведения люди. В таком случае следует организовать регистрацию пользователей, проходящих тестирование, осуществить загрузку лекций с сервера и проконтролировать, чтобы при прохождении теста текстовый документ лекций был закрыт. А так же разделить уровни пользования на тестируемых и администратора, расширив возможности обоих уровней:
Для уровня непривилегированного пользователя – предоставить возможность просмотреть результат не по только что пройденной теме, а по всем, пройденным пользователем.
Для уровня администратора – возможность устанавливать время прохождения теста, разрешение или запрет на самостоятельную регистрацию.
В целом, в курсовом проекте
реализованы в жизнь
Загрузка
Option Compare Database
Dim k As Integer
Private Sub Form_Load()
k = 0
End Sub
Private Sub Auto_Logo0_Click()
If k = 0 Then
MsgBox ("Уважаемый! Вы по что мозг мира трогаете?")
Else
If k <= 3 Then
MsgBox ("Прекратите тыкать
в меня своей неразумной мышью!
Else
If k <= 5 Then
Auto_Logo0.Visible = False
bums.Visible = True
End If
End If
End If
k = k + 1
End Sub
Private Sub bums_Click()
bums.Visible = False
Auto_Logo0.Visible = True
End Sub
Private Sub кн1_click()
On Error GoTo Err_кн1_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "form2s"
DoCmd.openform stDocName, , , stLinkCriteria
Exit_кн1_Click:
Exit Sub
Err_кн1_Click:
MsgBox Err.Description
Resume Exit_кн1_Click
End Sub
Private Sub кн2_Click()
On Error GoTo Err_кн2_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "form2p"
DoCmd.openform stDocName, , , stLinkCriteria
Exit_кн2_Click:
Exit Sub
Err_кн2_Click:
MsgBox Err.Description
Resume Exit_кн2_Click
End Sub
Form2s ‘’ первая форма для студентов
Option Compare Database
Private Sub Form_Load()
list1.RowSource = "Select distinct [н_группы] from [студенты]"
End Sub
Private Sub list1_Click()
Dim group As String, A As String
group = list1.Value
A = ("Select н_паспорта FROM Студенты WHERE н_группы='" & group & "'")
list2.RowSource = A
End Sub
Private Sub tarakani_Click()
tarakani.Visible = False
onotole.Visible = True
End Sub
Private Sub onotole_Click()
onotole.Visible = False
onotole2.Visible = True
End Sub
Private Sub кн1_click()
Dim db As Database, rst As DAO.Recordset, rst2 As DAO.Recordset
Set db = CurrentDb
Dim B, x, n, m, num, A, k As String
Dim sch As Integer
num = list2.Value
n = list2.Column(0, num)
x = "Select пароль FROM пароли WHERE н_паспорта='" & n & "'"
If ((IsNull(pass.Value) = True) Or (IsNull(list1.Value) = True) Or (IsNull(list2.Value) = True)) Then
MsgBox ("Вы не выбрали группу или номер паспорта. Или не ввели пароль!")
Else
Set rst = db.OpenRecordset(x, dbOpenDynaset)
A = rst.Fields("пароль").Value
B = pass.Value
Set rst2 = db.OpenRecordset("результаты", dbOpenDynaset)
If rst2.RecordCount = 0 Then
rst2.AddNew
rst2.Fields("н_паспорта").
rst2.Fields("н_рез").Value = 1
rst2.Update
Else
rst2.MoveLast
k = rst2.RecordCount
rst2.MoveFirst
nr = k + 1
sch = 1
Do Until rst2.EOF
If rst2.Fields("н_рез").Value = sch Then
sch = sch + 1
Else
nr = sch
End If
rst2.MoveNext
Loop
rst2.AddNew
rst2.Fields("н_паспорта").
rst2.Fields("н_рез").Value = nr
rst2.Update
End If
If (B = A) Then
On Error GoTo Err_кн1_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "form3s"
DoCmd.openform stDocName, , , stLinkCriteria
Exit_кн1_Click:
Exit Sub
Err_кн1_Click:
MsgBox Err.Description
Resume Exit_кн1_Click
Else
MsgBox ("Неверный пароль!")
End If
End If
End Sub
Private Sub Кнопка11_Click()
DoCmd.Close
stDocName = "Загрузка"
DoCmd.openform stDocName, , , stLinkCriteria
End Sub
Form3s ‘’выбор темы, изучение лекции
Option Compare Database
Dim db As Database, rst As DAO.Recordset, rst2, rst3 As DAO.Recordset
Dim path As String
Dim wrd As Word.Application
Dim o, f As Integer
Dim doc As Word.Document
Dim l As String
Private Sub list1_Click()
Dim tema As String, A, push As String
Set db = CurrentDb
push = list1.Value
nt = list1.Column(1, push)
Set seltem = db.OpenRecordset("select [н_темы] from [темы] where [наим_темы] like '" & nt & "' ", dbOpenSnapshot)
seltem.MoveFirst
ntem = seltem.Fields("н_темы").Value
End Sub
Private Sub кн1_click()
Dim stDocName As String
Dim stLinkCriteria As String
Dim d As Date
If f = 1 Then
MsgBox ("завершите изучение лекции (кнопка)")
Else
d = Now
Set db = CurrentDb
Set rst2 = db.OpenRecordset("результаты", dbOpenDynaset)
Set rst3 = db.OpenRecordset("Select [н_темы],[наим_темы] From [темы] where [наим_темы] like '" & nt & "'", dbOpenDynaset)
rst2.MoveFirst
Do Until rst2.EOF
If rst2.Fields("н_рез").Value = nr Then
rst2.Edit
rst2.Fields("н_темы").Value = rst3.Fields("н_темы").Value
rst2.Fields("дата").Value = d
rst2.Update
End If
rst2.MoveNext
Loop
On Error GoTo Err_кн1_Click
stDocName = "form4s"
DoCmd.openform stDocName, , , stLinkCriteria
Exit_кн1_Click:
Exit Sub
Err_кн1_Click:
MsgBox Err.Description
Resume Exit_кн1_Click
End If
End Sub
Private Sub кнопка10_click()
wrd.Visible = False
f = 0
End Sub
Private Sub Кнопка9_Click()
If IsNull(list1.Value) = False Then
list1.SetFocus
l = list1.Value
f = 1
path = "F:\КП\лекции\" & l & ".docx"
Set wrd = New Word.Application
Set doc = wrd.Documents.Open(path)
wrd.Visible = True
Else
MsgBox ("Вы не выбрали тему!!!")
End If
End Sub
Form4s ‘’тестирование
Option Compare Database
Dim schotchik, v, i, k, ozz, otm, ysl As Integer
Dim db As Database, op1, op2, op3, op4, vopros, prav, kr3, kr4, kr5, otvet As String
Dim ozen, rst, rst2, rst3, sl, viv, vv, rez As DAO.Recordset
Dim f As String, notv As String
Dim stDocName As String
Dim stLinkCriteria As String
Private Sub Form_Load()
Dim tbl As TableDef
Set db = CurrentDb
Set rst = db.OpenRecordset("select [н_темы],[вопрос],[н_
Set rst2 = db.OpenRecordset("select * from [вывод_на_экран] where [н_темы] like '" & ntem & "'", dbOpenSnapshot)
Set rst3 = db.OpenRecordset("ответы", dbOpenSnapshot)
Set ozen = db.OpenRecordset("оценивание", dbOpenSnapshot)
Set sl = db.OpenRecordset("select distinct [н_вопроса] from [вывод_на_экран] where [н_темы] like '" & ntem & "'", dbOpenDynaset)
sl.MoveLast
ysl = sl.RecordCount
Do Until ozen.EOF 'критерии оценки из таб. оценивание
If ozen.Fields("оценка").Value = 3 Then
kr3 = ozen.Fields("кол_отв").Value
End If
If ozen.Fields("оценка").Value = 4 Then
kr4 = ozen.Fields("кол_отв").Value
End If
If ozen.Fields("оценка").Value = 5 Then
kr5 = ozen.Fields("кол_отв").Value
End If
ozen.MoveNext
Loop
Set vv = db.OpenRecordset("testnew", dbOpenDynaset) 'чистить таблицу testnew
vv.AddNew
vv.Fields("Номер_вопроса").
vv.Update
vv.MoveFirst
Do Until vv.EOF
vv.Delete
vv.MoveNext
Loop
ozz = 0 'счетчик правильных ответов
schotchik = 1 ' счетчик вопросов
i = 1 ' номер вопроса
Set viv = db.OpenRecordset("select * from [вывод_на_экран] where [н_темы] like '" & ntem & "' and [н_вопроса] like '" & i & "' ", dbOpenSnapshot) 'вытаскивает тему и вопрос..
rst.MoveFirst
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("н_правильного_
End If
rst.MoveNext
Loop
nv.Value = i
k = 0
viv.MoveFirst
Do Until viv.EOF 'вывод в 4 поля
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
Информация о работе Обучающая программа по предмету "Базы данных"