Учебно-методический комплекс Для специальности: 080503 «Антикризисное управление» Москва, 2008

Вид материалаУчебно-методический комплекс

Содержание


Содержимое Module1
Процедуры обработки нажатий кнопок
Подобный материал:
1   ...   8   9   10   11   12   13   14   15   ...   18

8. Программный модуль обработки событий формы и накопления данных

Содержимое Module1


'Программа для работы с базой данных карточек студентов

Option Explicit 'Заставляет объявлять все переменные

Option Base 1 'Устанавливает начальный индекс массива в 1

Type DBEntry 'Определяет структуру записи базы данных

TabNum As String

ForName As String

Name As String

SurName As String

BirthYear As String

Fasch As String

TarRazr As String

CountIgd As String

Fora As String

Aliment As String

Adding As String

Count As String

RecNo As Integer

End Type


Public theDB() As DBEntry 'Массив базы данных

Public numEntries As Integer 'Общее количество записей

Public theEntryNum As Integer 'Текущая отображаемая запись


'Инициализация базы данных

Public Sub Init()

numEntries = 0

theEntryNum = 0

dlgWorker.scrNum.Min = 1

dlgWorker.scrNum.Max = 1

End Sub


Sub AutoOpen()

Worksheets("Меню").Activate

Init

End Sub


'Пересылка записи в базу данных

Public Sub EntryToDB(anEntry As Integer)

With dlgWorker

theDB(anEntry).TabNum = .txtTabNum.Value

theDB(anEntry).ForName = .txtForName.Value

theDB(anEntry).Name = .txtName.Value

theDB(anEntry).SurName = .txtSurName.Value

theDB(anEntry).BirthYear = .txtBirthYear.Value

theDB(anEntry).Fasch = .txtFasch.Value

theDB(anEntry).TarRazr = .txtTarRazr.Value

theDB(anEntry).CountIgd = .txtCountIgd.Value

theDB(anEntry).Fora = .txtFora.Value

theDB(anEntry).Aliment = .txtAliment.Value

theDB(anEntry).Adding = .txtAdding.Value

theDB(anEntry).RecNo = anEntry

End With

End Sub


'Пересылка записи в бланк

Public Sub DBToEntry(anEntry As Integer)

With dlgWorker

.txtTabNum.Value = theDB(anEntry).TabNum

.txtForName.Value = theDB(anEntry).ForName

.txtName.Value = theDB(anEntry).Name

.txtSurName.Value = theDB(anEntry).SurName

.txtBirthYear.Value = theDB(anEntry).BirthYear

.txtFasch.Value = theDB(anEntry).Fasch

.txtTarRazr.Value = theDB(anEntry).TarRazr

.txtCountIgd.Value = theDB(anEntry).CountIgd

.txtFora.Value = theDB(anEntry).Fora

.txtAliment.Value = theDB(anEntry).Aliment

.txtAdding.Value = theDB(anEntry).Adding

.lbCount.Caption = "Запись №" & Str(theDB(anEntry).RecNo) & _

" из " & Str(numEntries)

.scrNum.Value = anEntry

End With

End Sub

Процедуры обработки нажатий кнопок


Option Explicit 'Заставляет объявлять все переменные

'Добавление новой записи

Private Sub cmdAdd_Click()

numEntries = numEntries + 1

theEntryNum = numEntries

ReDim Preserve theDB(numEntries) 'Увеличение массива

dlgWorker.scrNum.Max = numEntries

EntryToDB numEntries 'Пересылка записи в массив

DBToEntry numEntries 'Чтение и отображение theEntryNum

End Sub


Private Sub cmdSave_Click()

Dim i As Integer, LastRec As Integer

'Если ещё нет записей, то выход

If theEntryNum = 0 Then Exit Sub

EntryToDB theEntryNum

LastRec = 1

With Worksheets("Личные данные")

'Находим пустую строку

Do While Not IsEmpty(.Cells(LastRec, 1))

LastRec = LastRec + 1

Loop

LastRec = LastRec - 1


'Записываем в таблицу введенные данные

For i = 1 To theEntryNum

.Cells(LastRec + i, 1).Value = theDB(i).TabNum

.Cells(LastRec + i, 2).Value = theDB(i).ForName

.Cells(LastRec + i, 3).Value = theDB(i).Name

.Cells(LastRec + i, 4).Value = theDB(i).SurName

.Cells(LastRec + i, 4).Value = theDB(i).BirthYear

.Cells(LastRec + i, 4).Value = theDB(i).Fasch

.Cells(LastRec + i, 4).Value = theDB(i).TarRazr

.Cells(LastRec + i, 4).Value = theDB(i).CountIgd

.Cells(LastRec + i, 4).Value = theDB(i).Fora

.Cells(LastRec + i, 4).Value = theDB(i).Aliment

.Cells(LastRec + i, 4).Value = theDB(i).Adding

Next i


End With

End Sub