- •Информатика
- •1. Устройство и характеристики пэвм
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •2. Типы пользовательских интерфейсов
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •3. Основы работы с объектами Windows
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •4. Работа со стандартными приложениями Windows
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •Пакеты прикладных программ на примере ms Word и работа с ними
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •6. Антивирусные программы и работа с ними
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •Архиваторы и работа с ними
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •Утилиты и работа с ними
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •9. Электронные таблицы на примере ms Excel и работа с ними
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •10. Системы управления базой данных на примере ms Access и работа с ней
- •10.1. Создание таблиц и схем данных
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •10.2. Разработка запросов к базе данных
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •10.3. Конструирование экранных форм для работы с данными
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •10.4. Конструирование отчетов
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •10.5. Субд ms Access. Автоматизация приложения средствами макросов и модулей vba
- •Справочная информация
- •Обучающее задание
- •Самостоятельное задание и контрольные вопросы
- •11. Написание и отладка программ средствами редактора vba
- •11.1. Справочная информация
- •4. Программа решения задачи
- •Задание
- •Контрольные вопросы
- •12. Создание программ обработка цифровой информации
- •12.1. Справочная информация
- •12.2. Пример программы
- •'Пример 1
- •12.3. Задание
- •Варианты заданий
- •12.4. Контрольные вопросы
- •13. Создание программ обработки символьной информации
- •13.1. Справочная информация
- •13.2. Пример программы
- •13.3. Задание
- •Варианты заданий
- •13.4. Контрольные вопросы
- •14. Создание финансовых функций
- •14.1. Справочная информация
- •14.2. Пример программы
- •14.3. Задание
- •Варианты заданий
- •14.4. Контрольные вопросы
- •15. Обработка объектов субд ms Access
- •15.1. Справочная информация
- •15.2. Пример программы поиска
- •15.3. Пример программы поиска и редактирования записей
- •15.4. Пример программы поиска и удаления записей
- •15.5. Пример программы расчета
- •15.6. Пример программы ввода новой записи
- •15.7. Задание
- •Контрольные вопросы
- •Литература
- •Образец оформления титульного листа
- •Приложение 4
- •Приложение 13 Основные типы данных
- •Приложение 14 Функции и операторы vba и ms Access
- •Приложение 15
- •Методы и свойства объекта Recordset
- •Оглавление
15.5. Пример программы расчета
Требуется создать процедуру расчета и вывода на экран значения среднего возраста всех студентов таблицы Студенты учебной базы данных.
'Работа с записями таблицы - просмотр и расчет среднего возраста
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
15.6. Пример программы ввода новой записи
Требуется создать процедуру ввода новой записи в таблицу Студенты учебной базы данных.
'Работа с записями таблицы - добавление
'Программа не проверяет корректность вводимых значений,
'не отслеживает нажатие кнопки 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