Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






FrmAddClass






Код:

 

Public dbOpen As Database

Public NewTbl As TableDef

Public fld As Field

Dim a As String

 

Private Sub AddSubjClass_Click()

Dim Y As Integer

On Error GoTo eh

 

Dim cl As String 'переменная для класса

 

If Text3.Text = " " Then

MsgBox " Вы не ввели предмет", vbInformation, " Ввод предмета"

Exit Sub

End If

 

cl = InputBox(" Введите класс: ", " Добавление предмета в класс")

Set dbOpen = OpenDatabase(" c: \Program Files\SchoolDB\SchoolDB.mdb")

Set NewTbl = dbOpen.TableDefs(cl)

 

'проверка предмета на уникальность

Y = AddSubjControl()

If Y = 1 Then

MsgBox " Повторный ввод предмета " & UCase(Text3.Text), vbInformation, " Контроль ввода предметов"

Exit Sub

End If

'добавляем поле к таблице

With NewTbl

.Fields.Append.CreateField(Text3.Text, dbText)

End With

dbOpen.Close

MsgBox " Предмет " & Text3.Text & " успешно добавлен в класс " & cl

Exit Sub

eh:

If Err.Number = 3265 Then MsgBox " Такого класса не существует", vbCritical, " Ошибка"

End Sub

 

Private Sub AddSubjList_Click()

If Text1.Text < > " " Then

List2.AddItem Text1.Text

End If

End Sub

 

Private Sub cmdAdd_Click()

'заполнение второго списка из первого

If List1.Text < > " " Then

List2.AddItem List1.Text

Text2.Enabled = True

Text2.BackColor = vbWhite

End If

End Sub

 

Private Sub cmdCreateClass_Click()

Dim Y As Integer

On Error GoTo eh

If List2.ListCount = 0 Then MsgBox " Невозможно создать класс без предметов", vbExclamation, " Обратитесь к врачу": Exit Sub

'проверка предмета на уникальность

Y = TestList

If Y = 1 Then

MsgBox " Повторный ввод предмета " & UCase(a), vbInformation, " Контроль ввода предметов"

Exit Sub

End If

 

mmm = MsgBox(" Будет создан класс с " & List2.ListCount & " предметами", _

vbInformation + vbOKCancel, " SoftMaster")

If mmm = vbOK Then

If List2.List(0) = " " Then MsgBox " Вы не выбрали ни одного предмета",, " Ошибка"

Set dbOpen = OpenDatabase(" c: \Program Files\SchoolDB\SchoolDB.mdb")

'создается новая таблица для класса

Set NewTbl = dbOpen.CreateTableDef(Trim(Text2.Text))

'добавляем начальные (одинаковые для всех) поля в таблицу

With NewTbl

.Fields.Append.CreateField(" Фамилия", dbText, 30)

.Fields.Append.CreateField(" Имя", dbText, 30)

.Fields.Append.CreateField(" Отчество", dbText, 30)

.Fields.Append.CreateField(" Пол", dbText, 2)

.Fields.Append.CreateField(" Номер ЛД", dbText, 7)

.Fields.Append.CreateField(" Дата рождения", dbDate)

.Fields.Append.CreateField(" Адрес", dbText)

.Fields.Append.CreateField(" Телефон", dbText, 10)

.Fields.Append.CreateField(" Зодиак", dbText, 10)

 

.Fields.Append.CreateField(" Гр_здор", dbText, 5)

.Fields.Append.CreateField(" Физ_гр", dbText, 5)

.Fields.Append.CreateField(" Врач", dbText, 100)

 

.Fields.Append.CreateField(" Отец", dbText, 50)

.Fields.Append.CreateField(" Место работы отца", dbText, 100)

.Fields.Append.CreateField(" Должность отца", dbText, 100)

.Fields.Append.CreateField(" Телефон отца", dbText, 10)

.Fields.Append.CreateField(" Мать", dbText, 50)

.Fields.Append.CreateField(" Место работы матери", dbText, 100)

.Fields.Append.CreateField(" Должность матери", dbText, 100)

.Fields.Append.CreateField(" Телефон матери", dbText, 10)

'длбавляем таблицу в базу

dbOpen.TableDefs.Append NewTbl

End With

 

cmdCreateClass.Enabled = False

MsgBox " Класс " & Text2.Text & " успешно создан",, " Создание класса"

 

'создаем поля для предметов из выбранных

With NewTbl

For i = 0 To List2.ListCount - 1

.Fields.Append.CreateField(List2.List(i), dbText)

Next i

dbOpen.TableDefs.Append NewTbl

End With

Else: Exit Sub

End If

 

dbOpen.Close

Exit Sub

eh:

If Err.Number = 3010 Then

MsgBox " Класс " & Text2.Text & " уже существует.", vbInformation, " Задайте другое имя"

End If

End Sub

 

Private Sub cmdOK_Click()

If IsNumeric(Right$(Text2.Text, 1)) Then

MsgBox " Какой это из " & Text2.Text & " -ых классов? ", vbQuestion, " Некорректный ввод"

Text2.SetFocus

Exit Sub

End If

 

cmdCreateClass.Caption = " СОЗДАТЬ КЛАСС " & Text2.Text _

& " C НОВЫМИ ПРЕДМЕТАМИ"

If Text2.Text = " " Then Exit Sub

cmdCreateClass.Enabled = True

End Sub

 

Private Sub cmdRemove_Click()

On Error Resume Next

List2.RemoveItem (List2.ListIndex)

End Sub

 

Private Sub DelClass_Click()

On Error GoTo eh

'удаление класса

Dim cl As String, ans As String

ans = MsgBox(" Are you sure??? ", vbQuestion + vbOKCancel, " Удаленного не воротишь...")

If ans = vbOK Then

cl = InputBox(" Введите имя удаляемого класса: ", " Удаление класса")

Set dbOpen = OpenDatabase(" c: \Program Files\SchoolDB\SchoolDB.mdb")

Set NewTbl = dbOpen.TableDefs(cl)

MsgBox " Класс < " & NewTbl.Name & " > удален", vbInformation, " SoftMaster"

 

'удаляем класс (на самом деле даем ему другое имя)

NewTbl.Name = " архив" & NewTbl.Name

 

End If

Exit Sub

eh:

If Err.Number = 3265 Then

MsgBox " Такого класса не существует", vbInformation, " Ошибка запроса"

End If

 

End Sub

 

Private Sub Form_Load()

On Error Resume Next

frmParol.CenterForm Me

Dim Sbj As String

'открываем текстовый файл со всеми предметами и заполняем или список1

Open " c: \Program Files\SchoolDB\subjects.txt" For Input As #2

Do While Not EOF(2)

Line Input #2, Sbj

List1.AddItem Sbj

Loop

End Sub

 

Private Sub RemoveAllList2_Click()

List2.Clear

Text2.Enabled = False

Text2.BackColor = vbButtonFace

End Sub

 

Private Sub SubjFromClass_Click()

frmSubjFromClass.Show

End Sub

 

Private Sub Text2_GotFocus()

cmdOK.Enabled = True

End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)

'ограничение ввода недопустимых символов

Select Case Chr$(KeyAscii)

Case " "

GoTo cs

Case Chr$(34)

GoTo cs

Case "."

GoTo cs

Case ", "

GoTo cs

Case " < "

GoTo cs

Case " > "

GoTo cs

Case " '"

GoTo cs

End Select

Exit Sub

 

cs:

MsgBox " Недопустимый символ < " & Chr$(KeyAscii) & " > ", vbInformation, " Ошибка ввода"

Text2.SetFocus

Text2.Text = " "

SendKeys " {BS}"

End Sub

 

Public Static Function TestList()

TestList = 0

'проверка списка на повторяемость предметов

For i = 0 To List2.ListCount - 1

a = List2.List(i)

For j = i + 1 To List2.ListCount - 1

If a = List2.List(j) Then TestList = 1

Next j

Next i

End Function

 

Public Static Function AddSubjControl()

'проверка предметов в классе на повторяемость

AddSubjControl = 0

 

For i = 0 To NewTbl.Fields.Count - 1

Set fld = NewTbl.Fields(i)

If Text3.Text = fld.Name Then AddSubjControl = 1

Next i

 

End Function

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.018 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал