Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Dim tarif, prpok, tekpok, rashod, summa As SingleСодержание книги Поиск на нашем сайте
Dim nomer As Integer
Dim data As Date 'Вычисление номера первой свободной строки в таблице nomer = Application.CountA(ActiveSheet.Columns(1)) + 1
With UserForm1 'Проверяем, введена ли фамилия If.txtFamil.Text = "" Then MsgBox " Вы забыли указать фамилию ", vbExclamation Exit Sub 'Выход из процедуры до ее естественного окончания
End If 'Проверяем, введено ли имя If.txtName.Text = "" Then MsgBox " Вы забыли указать имя ", vbExclamation
Exit Sub End If 'Проверяем, введен ли адрес If.TxtAdres.Text = "" Then MsgBox " Вы забыли указать адрес ", vbExclamation Exit Sub End If 'Присваиваем значения переменным в элементах TextBox fam =.txtFamil.Text nam =.txtName.Text adr =.TxtAdres.Text 'Проверяем, введено ли текущее показание счетчика If IsNumeric(.txttekpok.Text) = False Then MsgBox " Введено неверное показание счетчика ", vbExclamation Exit Sub
End If tekpok = CSng(.txttekpok.Text) 'Проверяем, введено ли предыдущее показание счетчика If IsNumeric(.txtprpok.Text) = False Then MsgBox " Введено неверное показание счетчика ", vbExclamation
Exit Sub End If prpok = CSng(.txtprpok.Text) 'Проверяем, введен ли тариф
If IsNumeric(.txttarif.Text) = False Then MsgBox " Введен неверный тариф ", vbExclamation Exit Sub End If tarif = CSng(.txttarif.Text)
If IsDate(.txtdata) = False Then MsgBox " Дата введена не верно ", vbExclamation Exit Sub
End If data =.txtdata If Val(txtprpok.Text) > Val(txttekpok.Text) Then MsgBox " Предыдущее показание счетчика больше текущего ", vbExclamation Exit Sub End If End With 'Вычисляем расход электроэнергии и сумму оплаты rashod = tekpok - prpok summa = rashod * tarif
'Записываем данные в ячейки рабочего листа With ActiveSheet .Cells(nomer, 1).Value = fam .Cells(nomer, 2).Value = nam .Cells(nomer, 3).Value = adr .Cells(nomer, 4).Value = tekpok .Cells(nomer, 5).Value = prpok .Cells(nomer, 6).Value = tarif .Cells(nomer, 7).Value = data .Cells(nomer, 8).Value = rashod .Cells(nomer, 9).Value = summa
End With ClearForm End Sub
Примечание.
В данном коде функция CSng преобразует выражение в числовой тип данных Single для того, чтобы можно было провести арифметические операции над данными, внесенными в TextBox. Обратное действие совершает функция Str.
Функция Val читает цифры символьного выражения слева направо до тех пор, пока не встретится нецифровой символ, и возвращает число. Функция IsNumeric проверяет, является ли значение данного выражения числом. Функция IsDate проверяет, является ли данное выражение корректной датой или временем
В данном коде использована процедура ClearForm, необходимая для очистки формы после добавления записи в базу данных. Вот ее код: Private Sub ClearForm() Unload UserForm1 UserForm1.Show End Sub
Теперь обработаем нажатие на кнопку Отмена.
Так же перейдем в процедуру обработки события Click и запишем следующий код: Private Sub CommandButton2_Click() Dim nomer As Integer 'Вычисляем номер последней строки nomer = Application.CountA(ActiveSheet.Columns(1)) 'Удаляем содержимое ячеек строки With ActiveSheet If nomer > 1 Then
.Cells(nomer, 1).Value = "" .Cells(nomer, 2).Value = "" .Cells(nomer, 3).Value = "" .Cells(nomer, 4).Value = "" .Cells(nomer, 5).Value = "" .Cells(nomer, 6).Value = "" .Cells(nomer, 7).Value = "" .Cells(nomer, 8).Value = "" End If End With End Sub
Теперь обработаем нажатие на кнопку Выход.
В процедуре обработки события Click запишем следующий
код: Private Sub CommandButton3_Click() 'Активизируем рабочий лист с именем Меню
Sheets(" Меню ").Activate 'Завершаем выполнение программы End
End Sub
Перейдем в нашу рабочую книгу. Выберем лист Меню. Щелкнем по кнопке «Прием платежа», появится пустая таблица с заголовками и форма для заполнения. Введем в нее значения (Рисунок 5.15).
Если они введены полностью и правильно, то при нажатии на кнопку «Принять» они появятся в таблице, а форма очистится и будет готова к приему новых данных.
Рисунок 5.15 — Заполненные форма и таблица
Построение диаграммы
Построить диаграмму на основе данных, находящихся в созданной выше табличной базе.
Вызовем в редакторе VBA созданную форму UserForm1 и напишем процедуру отклика кнопки Диаграмма на щелчок по ней. Процедура должна создавать на отдельном листе диаграмму на основе данных листа База.
Для создания процедуры два раза щелкнем по кнопке Диаграмма, тем самым мы попадем в окно редактирования кодапроцедуры. Запишем следующий код:
Private Sub CommandButton4_Click() ' Активизируем рабочий лист с именем Диаграмма
Sheets(" Диаграмма ").Activate 'Очищаем лист от всех объектов
|
||||
Последнее изменение этой страницы: 2020-11-11; просмотров: 239; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.182.8 (0.005 с.) |