Методология построения системы проверки корректности вводимой первичной информации

Предложены методики проверки корректности вводимых данных, обеспечивающие   безопасность и точность поступающей в базы данных информации, целостность базы при удалении и изменении данных. Предлагается решение проблемы на основе Visual Basic и SQL. 

При проектировании клиентских приложений работающих с базами данных необходимо заложить основу, обеспечивающую безопасность информации в базах, корректность добавляемой информации, целостность базы при удалении и изменении данных [1]. Реализация поставленной задачи возможна только при проверке вводимой информации на соблюдение требуемых положений по работе с базой данных. Следовательно, проверка корректности вводимой пользователем информации является актуальной задачей при проектировании клиентских приложений.

Проверка корректности выполняется путем решения ряда проблем увеличения точности ввода данных [2]:

  1. обязательное наличие значений в водимых полях;
  2. проверка типа вводимых данных (цифровой, буквенный, дата);
  3. ограничение диапазона значений данных;
  4. корректность преобразовательных инструкций при работе с базой данных;
  5. разработка обширной системы оповещения пользователя.

Перечисленные выше задачи были решены при разработке АРМ «Успеваемость». Для этого использовались следующие методики: 

  1. Проверка на наличие значения в поле выполняется с  помощью  ниже  приведенного  кода[3]. Код содержит строку текста сообщения, которое появляется на экране, если не указаны вводимые данные (интерфейс аналогичен рисунку 1):

If cmbGrp.Value = "" Then

MsgBox "Необходимо выбрать группу!", vbInformation, "АРМ Успеваемость" Exit Sub

End If 

  1. Проверка значения вводимого в поле на соответствие определенному типу данных можно осуществить следующим способом:

 Например, вводимое значение должно быть в форме даты. Эта проблема решается использованием компонента календарь [3]. Т.е. запрещается ввод любых иных данных в поле с оповещением пользователя соответствующим сообщением (рисунок 1)

Код, выполняющий эту задачу, приведен ниже:

If IsNull(plDateProved.Value) = True Then

MsgBox "Необходимо указать дату!", vbInformation, "АРМ Успеваемость" End If 

А также уустанавливаем условие на  корректность вводимой даты.

If plDateProved > Date Then

MsgBox "Указана НЕ КОРРЕКТНАЯ дата!", vbCritical, "АРМ Успеваемость" End If 

  1. Условие ограничения на диапазон вводимых данных. 

В АРМ Успеваемость для ввода баллов было использовано ограничительное условие ввода данных в виде цифр [4]. Для этого был использован следующий код:

Private Sub Ball_KeyPress(KeyAscii As Integer)

If ((KeyAscii <> 8) And (KeyAscii < 48)) Or (KeyAscii > 57) Then KeyAscii = 0 'backspase = 8 End Sub. 

 Интерфейс ввода даты АРМ «Успеваемость» 

Рисунок 1 – Интерфейс ввода даты АРМ «Успеваемость»

Проверка на диапазон вводимых численных значений(от 0 до 30) может быть выполнена кодом приведенным ниже:

Set rs = CurrentProject.Connection.Execute("SELECT IKT, G_CODE, ID_PPS, Ball, ID_DIS FROM dbo.tmp_pk WHERE (Ball > 30) AND (G_CODE = '" & Form_frmPriv.cmbGrp & "') and (ID_DIS = '" & Form_frmPriv.cmbdis.Value & "') and (ID_PPS = '" & Form_frmPriv.tmpUnicode.Value & "')")

If rs.RecordCount > 0 Then

MsgBox "Проставлены не корректные баллы!" & vbCrLf & "Значение должно быть в диапозоне от 0 до30!", vbCritical, " АРМ Успеваемость "

End If

Интерфейс предупреждающего сообщения приведен на рисунке 2.

  1. Проверку на корректность преобразовательных инструкций при работе с базой данных осуществляется с помощью двух технологий на основе SQL команд [5].
  2. a) Режим проверки:

Set rs = CurrentProject.Connection.Execute("SELECT IKT, G_CODE, ID_PPS, Ball, ID_DIS FROM dbo.tmp_pk WHERE (Ball IS NULL) AND (G_CODE = '" & Form_frmPriv.cmbGrp & "') and (ID_DIS = '" & Form_frmPriv.cmbdis.Value & "') and (ID_PPS = '" & Form_frmPriv.tmpUnicode.Value & "')")

If rs.RecordCount > 0 Then

MsgBox "Баллы проставлены не увсех!", vbCritical, " АРМ Успеваемость "

End If

б) Режим вставки:

Set rs = CurrentProject.Connection.Execute("INSERT INTO dbo.tb_RK1 (IKT, Ball, ID_PPS, ID_Dis, Date_Proved, Kol_Kr) SELECT IKT, Ball, ID_PPS, ID_DIS, Date_Proved, Kol_kr FROM dbo.tmp_pk WHERE (G_CODE = '" & Form_frmPriv.cmbGrp & "') and (ID_DIS = '" & Form_frmPriv.cmbdis.Value & "') and (ID_PPS = '" & Form_frmPriv.tmpUnicode.Value & "')")

Тем самым увеличиваем стабильность работы приложения и сохраннность данных. 

 Интерфейс проверки введенных данных на вхождение в установленный диапазон значений. АРМ «Успеваемость»

Рисунок 2 – Интерфейс проверки введенных данных на вхождение в установленный диапазон значений. АРМ «Успеваемость» 

  1. Для пользователя одним из основных моментов увеличивающих точность ввода данных являются оповещающие сообщения. Они информируют, предупреждают пользователя о проделанных действиях, предотвращая возможность совершения ошибки [6] (интерфейс сообщений аналогичен рункам 1 и 2).

Код:

If rs.RecordCount > 0 Then

MsgBox "Проставлены не корректные баллы!" & vbCrLf & "Значение должно быть в диапозоне от 0 до 30!", vbCritical, "АРМ Успеваемость"

Exit Sub End If

Вывод:

Предлагаемые методики позволят существенно снизить количество ошибок при вводе, тем самым обеспечивая точность сохраняемых данных в базе, целостность данных и стабильность работы приложения.

 

Литература

  1. http://nplastic.ru/?page_id=13 – Целостность данных
  2. Блюттман К. Access. Трюки. – СПб.: Питер, 2006. – 332 с.: ил(л).
  3. Кузьменко В.Г. Программирование на VBA – М.: ООО «Бином-Пресс», 2003. – 880 с.:ил(л).
  4. Дженнингс Р.; Использование Microsoft Office Access 2003 – М: Издательский дом «Вильямс», – 1312 с.: ил(л).
  5. Шевченко Н. А. Access Искусство создания базы данных – М.: НТ Пресс, 2005 – 160 с.: ил(л).
  6. Хорев В.Д. Самоучитель программирования на VBA в Microsoft Office. – К.: Юниор, 2001. – 320 с.: ил(л).
Фамилия автора: Р.В. Кравченко,  Н.М. Зайцева 
Год: 2011
Город: Павлодар
Яндекс.Метрика