Dim tarif, prpok, tekpok, rashod, summa As Single 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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; просмотров: 200; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.56.114 (0.011 с.)