Главная страница
Навигация по странице:

  • ModuleWorker

  • Лабораторная работа 5 Работа с формами и со сложными типами данных Выполнил студент гр. Асу11 Усанин Ф. Н


    Скачать 72.93 Kb.
    НазваниеЛабораторная работа 5 Работа с формами и со сложными типами данных Выполнил студент гр. Асу11 Усанин Ф. Н
    Дата27.12.2018
    Размер72.93 Kb.
    Формат файлаdocx
    Имя файлаOtchet5 (1).docx
    ТипЛабораторная работа
    #62046

    Лабораторная работа №5

    «Работа с формами и со сложными типами данных»

    Выполнил

    студент гр. АСУ-11

    Усанин Ф.Н.

    Вариант №36

    Задача:

    С помощью программных средств VBA создать мини-СУБД, используя заданную вариантом структуру данных:

    • ФИО сотрудника кафедры

    • Кафедра: 1,2,3,4,5

    • Должность: 1,2,3,4,5

    • Разряд : 9,10,11,12,13,14,15

    • Занимаемая ставка: 3/2,1,1/2,1/4

    • Должностной оклад

    • Заработная плата

    Разработка алгоритма:

    Запускается основное меню, в котором предоставлено краткое руководство к пользованию. В меню располагаются две кнопки: «Просмотр» и «Добавить».

    Кнопка «Просмотр» предоставляет доступ в меню просмотра базы данных. В данном меню также возможно изменить записи.

    Кнопка «Добавить» открывает меню, в котором можно создать новую запись для базы.

    После закрытия основной меню можно на выбор пользователя сохранять или не сохранять изменения, созданные в текущем запуске программы.
    Интерфейс








    Код программы

    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


    написать администратору сайта