Шаг 214.
VBA в MSExcel. Практические приемы программирования на VBA. Тема: еще раз о составлении базы данных. Практика (модуль UserForm2)

    На этом шаге мы рассмотрим назначение и содержание этого модуля.

Модуль UserForm2
  • Нажатие кнопки Запись в архив активизирует процедуру CommandButton1_Click, которая из диалогового окна Перерегистрация туристов фирмы "С нами не соскучишься" (рисунок 1) вводит данные на рабочий лист Архив.


    Рис.1. Диалоговое окно Перерегистрация туристов фирмы "С нами не соскучишься"

  • Нажатие кнопки Отмена активизирует процедуру ConmandButton2_Click, закрывающую диалоговое окно.
  • Нажатие кнопки Удалить активизирует процедуру CommandButton3_Click, которая удаляет запись из базы данных.
  • Нажатие кнопки Ввести изменения активизирует процедуру CommandButton4_Click, которая вводит внесенные изменения в запись базы данных.

    Приведем текст этого модуля.

Private Sub CommandButton1_Click()
  ' Процедура записи на рабочий лист Архив
  Dim Строка As Integer
  ' Строка - вспомогательная переменная, которой присваивается
  ' номер первой пустой строки рабочего листа Архив
  
  ' Копирование строки из рабочего листа БазаДанных в буфер обмена
  Sheets("БазаДанных").Rows(НайденнаяЗапись).Copy

  ' Вставка в рабочий лист Архив содержания буфера обмена
  With Sheets("Архив")
    Строка = Application.CountA(.Columns(1)) + 1
    .Paste Destination:=.Rows(Строка)
  End With
End Sub

Private Sub CommandButton2_Click()
  ' Закрытие диалогового окна Редактирование
  UserForm2.Hide
  ' Обнуляется номер найденной записи
  НайденнаяЗапись = 0
End Sub

Private Sub CommandButton3_Click()
  ' Процедура удаления строки из рабочего листа БазаДанных
  
  ' Удаление записи
  Sheets("БазаДанных").Rows(НайденнаяЗапись).Select
  Selection.Delete
  
  ' Закрытие диалогового окна Редактирование
  UserForm2.Hide

  ' Обнуление переменной с номером строки
  НайденнаяЗапись = 0
  Sheets("БазаДанных").Cells(1, 20).Value = Empty
End Sub

Private Sub CommandButton4_Click()
  ' Процедура записи в базу данных измененной информации

  ' Считывание информации из диалогового окна "Редактирование"
  ' в переменные
  With UserForm2
    Фамилия = Trim(.TextBox1.Text)
    Имя = Trim(.TextBox2.Text)
    Продолжительность = CInt(.TextBox3.Text)
    If .OptionButton1.Value = True Then
      Пол = "Муж"
    Else
      Пол = "Жен"
    End If
    If .CheckBox1.Value = True Then
      Оплачено = "Да"
    Else
      Оплачено = "Нет"
    End If
    If .CheckBox2.Value = True Then
      Фото = "Да"
    Else
      Фото = "Нет"
    End If
    If .CheckBox3.Value = True Then
      Паспорт = "Да"
    Else
      Паспорт = "Нет"
    End If
    ВыбранныйТур = Trim(.ComboBox1.Text)
  End With

  ' Запись редактируемой информации о клиенте в базу данных
  With Sheets("БазаДанных")
    .Cells(НайденнаяЗапись, 1).Value = Trim(Фамилия)
    .Cells(НайденнаяЗапись, 2).Value = Trim(Имя)
    .Cells(НайденнаяЗапись, 3).Value = Trim(Пол)
    .Cells(НайденнаяЗапись, 4).Value = Trim(ВыбранныйТур)
    .Cells(НайденнаяЗапись, 5).Value = Trim(Оплачено)
    .Cells(НайденнаяЗапись, 6).Value = Trim(Фото)
    .Cells(НайденнаяЗапись, 7).Value = Trim(Паспорт)
    .Cells(НайденнаяЗапись, 8).Value = Trim(Продолжительность)
  End With
End Sub

Private Sub SpinButton1_Change()
  TextBox3.Text = CStr(SpinButton1.Value)
End Sub

    На следующем шаге мы рассмотрим модуль UserForm4.




Предыдущий шаг Содержание Следующий шаг