Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример программы ввода новой записи




Пример программы расчета

Требуется создать процедуру расчета и вывода на экран значения среднего возраста всех студентов таблицы Студенты учебной базы данных.

 

'Работа с записями таблицы - просмотр и расчет среднего возраста

Sub Расчет()

Dim База, Запись As Variant

Dim СрВозраст As Single, СумВозраст As Integer, _

ЧислоЗаписей As Long

Set База = CurrentDb 'семейство объектов текущей базы данных

Set Запись База.OpenRecordSet("Студенты")

'открытие набора записей текущей базы данных

СумВозраст = 0

ЧислоЗаписей = 0

Do Until Запись.EOF = True

ЧислоЗаписей = ЧислоЗаписей + 1

СумВозраст = СумВозраст + (Year(Date) - _

Year(Запись![ДатаРождения].Value))

Запись.MoveNext 'метод перехода к следующей записи

Loop

СрВозраст = СумВозраст / ЧислоЗаписей

'или СрВозраст = СумВозраст /Запись.RecordCount

'сойство RecordCount возвращает число записей

MsgBox "Средний возраст равен " & Format(СрВозраст, "Standard")

End Sub

 

 

Требуется создать процедуру ввода новой записи в таблицу Студенты учебной базы данных.

 

'Работа с записями таблицы - добавление

'Программа не проверяет корректность вводимых значений,

'не отслеживает нажатие кнопки Cancel,

'не осуществляет поиск дублирующих записей в поле КодСтудента 'таблицы "Студенты"

Sub добавление1()

Dim База, Запись As Variant

Set База = CurrentDb

Set Запись = База.OpenRecordSet("Студенты")

With Запись

.AddNew 'метод добавляет запись

![КодСтудента].Value = InputBox("Введите код", "Ввод", _

"141111")

![Фамилия].Value = InputBox("Введите фамилию студента", _

"Ввод", "Шариков")

![Имя].Value = InputBox("Введите имя", "Ввод", "Полиграф")

![Отчество].Value = InputBox("Введите отчество студента", _

"Ввод", "Полиграфович")

![ДатаРождения].Value = CDate(InputBox("Введите дату _

рождения", "Ввод", "01.02.01"))

![Адрес].Value = InputBox("Введите домашний адрес", "Ввод", _

"Москва, Петровка - 25")

![КодСпециальности].Value = InputBox("Введите код _

специальности", "Ввод", "У")

![Курс].Value = CInt(InputBox("Введите курс", "Ввод", "1"))

![Группа].Value = CInt(InputBox("Введите группу", "Ввод", "1"))

![Подгруппа].Value = CInt(InputBox("Введите подгруппу", _

"Ввод", "1"))

.Update 'метод сохраняет новую запись

.Close

End With

End Sub

 

Для осуществления проверки вводимых с клавиатуры значений и поиска дублирующих по значению ключевого поля записей разумно будет разделить ввод информации на два этапа: ввод данных с клавиатуры в структурную переменную и запись данных из оперативной памяти, где хранятся значения структурной переменной, в таблицу. Ниже приведенная программа реализует данный подход.

 

Option Compare Database

'тип данных Type Студент описывается в декларативной части 'модуля

Private Type Студент

Код As String * 5

Фам As String * 20

Имя As String * 10

Отч As String * 20

Д_Р As Date

Адр As String * 255

КодСпец As String * 1

Курс As Byte

Группа As Byte

Подгруппа As Byte

End Type

 

Sub добавление2()

Dim Экономист As Студент

Dim q, База, Запись As Variant

Set База = CurrentDb

Set Запись = База.OpenRecordSet("Студенты")

With Экономист

q = InputBox("Введите код", "Ввод", "02111")

'здесь может присутствовать проверка корректности 'введенного значения кода студента

If RTrim(q) = Empty Then Exit Sub Else.Код = q

q = InputBox("Введите фамилию студента", "Ввод", "Шариков")

'здесь может присутствовать проверка корректности 'введенного значения фамилии,

' и т.д.

If RTrim(q) = Empty Then Exit Sub Else.Фам = q

q = InputBox("Введите имя", "Ввод", "Полиграф")

If RTrim(q) = Empty Then Exit Sub Else.Имя = q

q = InputBox("Введите отчество студента", "Ввод", _

"Полиграфович")

If RTrim(q) = Empty Then Exit Sub Else.Отч = q

q = CDate(InputBox("Введите дату рождения", "Ввод", _

"01.02.01"))

If RTrim(q) = Empty Then Exit Sub Else.Д_Р = q

q = InputBox("Введите домашний адрес", "Ввод", "Москва, _

Петровка - 25")

If RTrim(q) = Empty Then Exit Sub Else.Адр = q

q = InputBox("Введите код специальности", "Ввод", "У")

If RTrim(q) = Empty Then Exit Sub Else.КодСпец = q

q = CInt(InputBox("Введите курс", "Ввод", "1"))

If RTrim(q) = Empty Then Exit Sub Else.Курс = q

q = CInt(InputBox("Введите группу", "Ввод", "1"))

If RTrim(q) = Empty Then Exit Sub Else.Группа = q

q = CInt(InputBox("Введите подгруппу", "Ввод", "1"))

If RTrim(q) = Empty Then Exit Sub Else.Подгруппа = q

End With

'Здесь может присутствовать проверка наличия дублирующих 'записей в поле ‘КодСтудента,

'для чего необходимо организовать поиск значения КодСтудента _

'в таблице Студенты,

'аналогичного значению, введенному с клавиатуры

With Запись

.AddNew

![КодСтудента].Value = Экономист.Код

![Фамилия].Value = Экономист.Фам

![Имя].Value = Экономист.Имя

![Отчество].Value = Экономист.Отч

![ДатаРождения].Value = Экономист.Д_Р

![Адрес].Value = Экономист.Адр

![КодСпециальности].Value = Экономист.КодСпец

![Курс].Value = Экономист.Курс

![Группа].Value = Экономист.Группа

![Подгруппа].Value = Экономист.Подгруппа

.Update

.Close

End With

End Sub

 

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.