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

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

Модуль UserForm1
Программа считывает информацию с диалогового окна Регистрация туристов фирмы "С нами не соскучишься" (рисунок 1) и обеспечивает ввод набранных в нем данных в рабочий лист БазаДанных.


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

  • Нажатие кнопки OK активизирует процедуру CommandButton1_Click по считыванию информации с диалогового окна и заполнению базы данных.
  • Счетчик активизирует процедуру SpinButton1_Change, которая вводит значения счетчика в поле продолжительность тура.
  • Процедура TextBox3_Change синхронизирует вводимые данные в поле Продолжительность тура со значением счетчика.
  • Нажатие кнопки Отмена активизирует процедуру CommandButton2_Сlick, которая закрывает диалоговое окно Регистрация туристов фирмы "С нами не соскучишься".

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

 Private Sub CommandButton1_Click()
  ' В переменную НомерСтроки вводится номер первой пустой строки
  ' рабочего листа БазаДанных
  НомерСтроки = Application.CountA(Sheets("БазаДанных").Range("A:A")) + 1

  ' Считывание информации в переменные из диалогового окна
  With UserForm1
    Фамилия = .TextBox1.Text
    Имя = .TextBox2.Text
    Продолжительность = .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 = xlOn Then
      Паспорт = "Да"
    Else
      Паспорт = "Нет"
    End If
    ВыбранныйТур = .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 CommandButton2_Click()
  ' Процедура закрытия диалогового окна
  UserForm1.Hide
End Sub

Private Sub SpinButton1_Change()
  ' Процедура ввода числа со счетчика в поле ввода
  With UserForm1
    .TextBox3.Text = CStr(.SpinButton1.Value)
  End With
End Sub

Private Sub TextBox3_Change()
  ' Процедура установки значения счетчика из поля ввода
  With UserForm1
    .SpinButton1.Value = CInt(.TextBox3.Text)
  End With
End Sub

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




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