КАТЕГОРИИ: Архитектура-(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; Просмотров: 368; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |