- •Информационное обеспечение систем управления
- •Введение
- •Лабораторная работа №1. Текстовый процессор Word
- •1. Набор математических формул
- •На экране появится окно для ввода формулы и таблица с набором различных символов (рис.1).
- •2. Создание макросов
- •Лабораторная работа №2. Создание простого html-документа
- •Список основных меток языка представлен в следующей таблице
- •Порядок выполнения работы
- •Лабораторная работа № 3. Создание и использование графической карты
- •Порядок выполнения работы
- •Лабораторная работа № 4. Создание и использование фреймов
- •Лабораторная работа № 5 Элементы управления в гипертекстовом документе
- •Порядок выполнения работы
- •Лабораторная работа № 6 Создание многотабличной базы данных
- •Фамилия кс кс Сумма Сумма
- •Имя Группа Механика
- •Лабораторная работа № 7 Проектирование форм в Access 97
- •1. Создание основной кнопочной формы
- •2. Создание вспомогательных форм
- •Порядок выполнения работы
- •Лабораторная работа № 8 Создание формы для идентификации пользователя
- •Порядок выполнения работы
- •1. Подготовка текстового файла со списком фамилий пользователей и их паролей
- •2. Создание формы для проверки пароля
- •3. Событие Load – загрузка формы Проверка
- •3. Событие AfterUpdate для объекта Поле1
- •4. Событие AfterUpdate для объекта Поле2
- •5. Событие Click для объекта Кнопка
- •Содержание
- •Информационное обеспечение систем управления
3. Событие Load – загрузка формы Проверка
Для объекта Проверка и события Load (которое наступает при открытии данной формы) имя процедуры будет Проверка_Load(). В этой процедуре должны выполняться следующие действия:
а) текстовый файл spisok.txt открывается для чтения:
Open “ spisok.txt” For Input As # 1
б) считывается числовое значение в переменную kol – количество фамилий
Input # 1, kol
в) с помощью цикла For i = 1 То kol... Next i и процедуры Input#1 осуществляется попарное считывание из текстового файла фамилий и соответствующих им паролей и занесение их в элементы массива mass(n) типа String;
г) по окончании считывания текстовый файл закрывается:
Close #1;
д) счетчику ns числа попыток ввода пароля присваивается значение ноль.
Примечание. Все необходимые переменные (имена можно выбирать по своему усмотрению) должны быть описаны с помощью инструкции Dim.
3. Событие AfterUpdate для объекта Поле1
Поле 1 предназначено для ввода фамилии. После ввода в него символов и нажатия клавиши [Enter] наступает событие AfterUpdate (После обновления). Соответствующая процедура обработки имеет имя Полеl_AfterUpdate ().
Она выполняет следующие действия. Организуется цикл, в котором введенное в поле значение (Поле1.Value) сравнивается с элементами массива mass.
При совпадении введенного значения с одним из элементов глобальной переменной j присваивается номер этого элемента, в противном случае выводится сообщение «Имя введено неверно».
При трехкратном неправильном вводе фамилии выполняется инструкция Проверка.Close (форма закрывается).
4. Событие AfterUpdate для объекта Поле2
Поле2 предназначено для ввода пароля. Поскольку после ввода фамилии процедура Полеl_AfterUpdate () определила номер j элемента массива mass, содержащую эту фамилию, то теперь достаточно сравнить введенный пароль со значением элемента mass(j + 1) и в случае их совпадения присвоить логической переменной flag значение True (в противном случае – False).
Пример такой процедуры:
Private Sub noAe2_AfterUpdate()
flag = True
password = Поле2. Value
If password <> mass(j + 1) Then flag = False
End Sub
Переменная flag должна быть предварительно описана как глобальная:
Dim flag As Boolean
5. Событие Click для объекта Кнопка
При нажатии кнопки с именем ОК должно произойти следующее: если переменная flag имеет значение True, то должна быть выполнена команда «открыть Главную_кнопочную_форму»:
DoCmd.OpenForm “Главная_кнопочная_форма”
В противном случае счетчик числа попыток ns увеличивается на единицу и выводится сообщение “Пароль введен неверно, попробуйте еще раз!”. Если число попыток оказывается больше трех, подается звуковой сигнал и выполняется команда «Закрыть форму Проверка».
П римечание. Окно сообщения выводится с помощью процедуры MsgBox. Необходимо установить параметры этой процедуры так, чтобы окно сообщения соответствовало показанному на рисунке.
Ниже приведен примерный текст программы на языке VBA.
Option Compare Database
Option Explicit
Dim login, password, str, kol As String
Dim flag As Boolean
Dim i, j, ns As Byte
Dim mass(l To 10) As String
Private Sub Form_Load()
ns = 0 ' После загрузки формы счетчик обнуляется
’ Файл spisok.txt находится в папке «Мои документы»
' которая указана как рабочий каталог Access
‘ (изменение – через меню ' Сервис-Параметры...–
‘ Общие – Рабочий каталог)
Open “spisok.txt” For Input As # 1
Input # 1, kol
For i = 1 To kol Input # 1, mass(2 * i – 1), mass(2 * i)
Nexti
Close # 1
End Sub
Private Sub Кнопка5_Click()
If flag Then
DoCmd.OpenForm “Главная_кнопочная_форма”
Else:
ns = ns + 1
MsgBox “Пароль введен неверно, попробуйте еще раз!”, vbCritical, “Внимание!” End If
If ns > 2 Then
For i = 1 To 100
Beep
Next i
DoCmd.Close
End If
End Sub
Private Sub Поле1_AfterUpdate()
login = Поле1.Value
j = 0
For i = 1 To kol
If login = mass(2 *i – 1) Then j = i
Next i
If j = 0 Then
MsgBox “Имя введено неверно”
End If
End Sub
Private Sub Поле3_AfterUpdate()
flag = True
password = ПолеЗ.Value
If password <> mass(2 * j) Then flag = False
End Sub