Лабораторная работа 5 Работа с формами и со сложными типами данных Выполнил студент гр. Асу11 Усанин Ф. Н
Скачать 72.93 Kb.
|
Лабораторная работа №5 «Работа с формами и со сложными типами данных» Выполнил студент гр. АСУ-11 Усанин Ф.Н. Вариант №36 Задача: С помощью программных средств VBA создать мини-СУБД, используя заданную вариантом структуру данных:
Разработка алгоритма: Запускается основное меню, в котором предоставлено краткое руководство к пользованию. В меню располагаются две кнопки: «Просмотр» и «Добавить». Кнопка «Просмотр» предоставляет доступ в меню просмотра базы данных. В данном меню также возможно изменить записи. Кнопка «Добавить» открывает меню, в котором можно создать новую запись для базы. После закрытия основной меню можно на выбор пользователя сохранять или не сохранять изменения, созданные в текущем запуске программы. Интерфейс Код программы ModuleWorker Type Worker Name As String * 30 'ФИО Chair As Integer 'Кафедра Position As Integer 'Должность Rank As Integer 'Разряд Rate As String * 3 'Ставка Pay As Integer 'Оклад Salary As Integer 'З/пл End Type Public Man As Worker Public Str As Integer Public q As Integer Public qs As Integer Macros5 Sub лаба5() 'Лабораторная работа №5 'Вариант 36 'Студент гр. АСУ-11 'Усанин Ф.Н. Open "c:\db.txt" For Random Access Read Write Shared As #1 Len = Len(Man) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\db.txt", "c:\dbcopy.txt" Set fso = Nothing HelloForm.Show End Sub HelloForm Private Sub CommandButton1_Click() ShowForm.Show End Sub Private Sub CommandButton2_Click() AddForm.Show End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim quest quest = MsgBox("Сохранить изменения?", vbYesNo, "Сохрание") If quest = 6 Then: Kill "c:\dbcopy.txt" Exit Sub If quest = 7 Then: Close #1 Kill "c:\db.txt" Name "c:\dbcopy.txt" As "c:\db.txt" Open "c:\db.txt" For Random Access Read Write Shared As #1 Len = Len(Man) End Sub ShowForm Public Sub modific() q = qs + Str Get #1, q, Man Load ModForm ModForm.TextBox1.Value = Man.Name ModForm.ComboBox1.Value = Man.Chair ModForm.ComboBox2.Value = Man.Position ModForm.ComboBox3.Value = Man.Rank ModForm.ComboBox4.Value = Man.Rate ModForm.TextBox2.Value = Man.Pay ModForm.TextBox3.Value = Man.Salary ModForm.Show Seek #1, Str + 8 End Sub Private Sub CancelButton_Click() Seek #1, 1 Unload Me End Sub Private Sub CommandButton1_Click() qs = 1 modific End Sub Private Sub CommandButton2_Click() qs = 2 modific End Sub Private Sub CommandButton3_Click() qs = 3 modific End Sub Private Sub CommandButton4_Click() qs = 4 modific End Sub Private Sub CommandButton5_Click() qs = 5 modific End Sub Private Sub CommandButton6_Click() qs = 6 modific End Sub Private Sub CommandButton7_Click() qs = 7 modific End Sub Private Sub CommandButton8_Click() qs = 8 modific End Sub Private Sub NextButton_Click() Str = Str + 8 For i = 0 To 7 Get #1, , Man Me.Controls("Label" & 1 + i * 7) = Man.Name Me.Controls("Label" & 2 + i * 7) = Man.Chair Me.Controls("Label" & 3 + i * 7) = Man.Position Me.Controls("Label" & 4 + i * 7) = Man.Rank Me.Controls("Label" & 5 + i * 7) = Man.Rate Me.Controls("Label" & 6 + i * 7) = Man.Pay Me.Controls("Label" & 7 + i * 7) = Man.Salary Next i End Sub Private Sub UserForm_Activate() Str = 0 q = 0 qs = 0 For i = 0 To 7 Get #1, , Man Me.Controls("Label" & 1 + i * 7) = Man.Name Me.Controls("Label" & 2 + i * 7) = Man.Chair Me.Controls("Label" & 3 + i * 7) = Man.Position Me.Controls("Label" & 4 + i * 7) = Man.Rank Me.Controls("Label" & 5 + i * 7) = Man.Rate Me.Controls("Label" & 6 + i * 7) = Man.Pay Me.Controls("Label" & 7 + i * 7) = Man.Salary Next i End Sub ModForm Private Sub CancelButton_Click() Unload Me End Sub Private Sub ModButton_Click() Man.Name = TextBox1 Man.Chair = ComboBox1 Man.Position = ComboBox2 Man.Rank = ComboBox3 Man.Rate = ComboBox4 Man.Pay = TextBox2 Man.Salary = TextBox3 Put #1, q, Man ShowForm.Controls("Label" & (qs - 1) * 7 + 1) = Man.Name ShowForm.Controls("Label" & (qs - 1) * 7 + 2) = Man.Chair ShowForm.Controls("Label" & (qs - 1) * 7 + 3) = Man.Position ShowForm.Controls("Label" & (qs - 1) * 7 + 4) = Man.Rank ShowForm.Controls("Label" & (qs - 1) * 7 + 5) = Man.Rate ShowForm.Controls("Label" & (qs - 1) * 7 + 6) = Man.Pay ShowForm.Controls("Label" & (qs - 1) * 7 + 7) = Man.Salary q = 0 Unload Me End Sub Private Sub UserForm_Initialize() 'Кафедра ComboBox1.AddItem 1 ComboBox1.AddItem 2 ComboBox1.AddItem 3 ComboBox1.AddItem 4 ComboBox1.AddItem 5 'Должность ComboBox2.AddItem 1 ComboBox2.AddItem 2 ComboBox2.AddItem 3 ComboBox2.AddItem 4 ComboBox2.AddItem 5 'Разряд ComboBox3.AddItem 9 ComboBox3.AddItem 10 ComboBox3.AddItem 11 ComboBox3.AddItem 12 ComboBox3.AddItem 13 ComboBox3.AddItem 14 ComboBox3.AddItem 15 'Ставка ComboBox4.AddItem "3/2" ComboBox4.AddItem "1" ComboBox4.AddItem "1/2" ComboBox4.AddItem "1/4" End Sub AddForm Private Sub AddButton_Click() Man.Name = TextBox1 Man.Chair = ComboBox1 Man.Position = ComboBox2 Man.Rank = ComboBox3 Man.Rate = ComboBox4 Man.Pay = TextBox2 Man.Salary = TextBox3 Put #1, Seek(1) - 1, Man Seek #1, Seek(1) + 1 CancelButton_Click End Sub Private Sub CancelButton_Click() Seek #1, 1 Unload Me End Sub Private Sub UserForm_Initialize() 'Кафедра ComboBox1.AddItem 1 ComboBox1.AddItem 2 ComboBox1.AddItem 3 ComboBox1.AddItem 4 ComboBox1.AddItem 5 'Должность ComboBox2.AddItem 1 ComboBox2.AddItem 2 ComboBox2.AddItem 3 ComboBox2.AddItem 4 ComboBox2.AddItem 5 'Разряд ComboBox3.AddItem 9 ComboBox3.AddItem 10 ComboBox3.AddItem 11 ComboBox3.AddItem 12 ComboBox3.AddItem 13 ComboBox3.AddItem 14 ComboBox3.AddItem 15 'Ставка ComboBox4.AddItem "3/2" ComboBox4.AddItem "1" ComboBox4.AddItem "1/2" ComboBox4.AddItem "1/4" Do While Not EOF(1) Get #1, , Man Loop End Sub |