Проверка ввода

Проверка ввода числа в текстовое поле на форме VBA

Данный код позволяет выполнять проверку корректности ввода числового значения в текстовое поле (textbox) на форме,
автоматически блокируя ввод запрещенных символов

 

Используется событие KeyPress элемента управления TextBox

Допустимые символы: цифры от 0 до 9, точка (запятая автоматически заменяется на точку), знак «минус» (перед числом)

Предполагается, что текстовое поле имеет имя TextBox_Multiplier

Преобразование списка номеров и названий столбцов в массив значений

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

Назначение функции: исключить ошибки пользовательского ввода, преобразовать буквенные названия столбцов в числовые значения.

Пример использования:

Private Sub ПримерИспользования_ParseColumnsStringEx()
    Dim txt$, txt1$, txt2$
    ' исходная строка с номерами столбцов (c ошибками ввода)
    txt$ = "4-4 , -a- C;8,Я-7,-11-9-F, Е --К; 4,21-,6-F"
 
    ' получаем массив столбцов
    arr = ParseColumnsStringEx(txt)
 
    ' выводим список столбцов:  4,1,2,3,8,7,11,10,9,8,7,6,5,6,7,8,9,10,11,4,21,6,
    For i = LBound(arr) To UBound(arr): Debug.Print arr(i) & ",";: Next i: Debug.Print
 
    ' ======================================
    ' или, например, такая строка
    txt$ = "4-5,8 -k, 6-5;a,e,3,4, 46-BA"
 
    ' получаем массив столбцов (c «промежуточными» значениями)
    arr2 = ParseColumnsStringEx(txt, txt1, txt2)
 
    Debug.Print txt1    ' выводит  4-5;8-K;6-5;A;E;3;4;46-BA
    Debug.Print txt2    ' выводит  4-5,8-11,6-5,1,5,3,4,46-53
    columnsList$ = Join(arr2, ",")
    Debug.Print columnsList$    ' выводит 4,5,8,9,10,11,6,5,1,5,3,4,46,47,48,49,50,51,52,53
End Sub

Замена запрещённых символов в имени файла или папки

При попытке сохранить файл под именем, заданным пользователем, вы можете получить ошибку - если в имени файла (папки) присутствуют запрещённые символы.

Этого легко избежать, если в процессе формирования имени файла удалить из него недопустимые символы, заменив их символом подчёркивания:

Function Replace_symbols(ByVal txt As String) As String
    St$ = "~!@/\#$%^&*=|`"""
    For i% = 1 To Len(St$)
        txt = Replace(txt, Mid(St$, i, 1), "_")
    Next
    Replace_symbols = txt
End Function

Пример использования:

' формируем путь к новому файлу

Программное создание формы для ввода и редактирования данных таблицы Excel

Форма для выбора создаваемых полей, и настройки их параметров

Программа предназначена для автоматизации процесса создания форм ввода и редактирования данных из таблиц Excel.

Сейчас реализована лишь малая часть программы.
Но уже сейчас программа достаточно точно распознаёт типы полей таблицы, и для полей типа "выпадающий список" и "поле с маской ввода" формирует список значений и маску ввода соответственно.

Как будет свободное время - постараюсь продолжить написание кода.
Если кто желает поучаствовать в проекте - присоединяйтесь )

База данных больницы - формирование отчётов

Кнопки для запуска формирования отчётов

Программа позволяет сформировать отчёты по базе данных больницы.

Кроме того, реализован ввод данных в базу о новых пациентах.

Программа оформления заявлений на пополнение счёта

Форма ввода данных

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

 

Реализована проверка корректности ввода некоторых полей.

(например, для полей "серия паспорта" и "номер паспорта" реализована проверка вводимых символов - допускается ввод только заданного количества цифр)

Выбор большинства значений производится из выпадающих списков, что позволяет уменьшить вероятность ошибки оператора.

 

Проверка синтаксиса адреса электронной почты на VBA

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

В большинстве случаев нужно быть уверенным не только в том, что такой адрес содержит знак @ и точку, но и в том, что все остальные символы представлены буквами, числами или знаками подчеркивания.
Проще всего реализовать эту проверку с использованием регулярных выражений (объект RegExp)

Sub ПримерПроверкиАдресаПочты()
    Debug.Print CheckEmail("order@ExcelVBA.ru")    ' возвращает TRUE (корректный адрес почты)
    Debug.Print CheckEmail("123-order@ExcelVBA.ru")    ' возвращает TRUE (корректный адрес почты)
    Debug.Print CheckEmail("create.order@Excel.VBA.ru")    ' возвращает TRUE (корректный адрес почты)
    Debug.Print CheckEmail("mail@Excel-macro.ru")    ' возвращает TRUE (корректный адрес почты)

    Debug.Print CheckEmail("order@ExcelVBA")    ' возвращает FALSE (ошибка в адресе почты)
    Debug.Print CheckEmail("order.ExcelVBA.ru")    ' возвращает FALSE (ошибка в адресе почты)
    Debug.Print CheckEmail("order.ExcelVBA@ru")    ' возвращает FALSE (ошибка в адресе почты)
End Sub

Используемый в функции шаблон может принимать любое количество цифр и букв, символов подчеркивания, точки и тире перед знаком «@» и после символа «@» до точки, но только числа, буквы и символы подчеркивания после точки.

Код функции CheckEmail:

Автоматизированная информационно-справочная система сотрудника приемной комиссии

АИСС "Абитуриент" - форма ввода данных абитуриента

Программа АИСС «СПК» предназначена для автоматизации работы приемной комиссии колледжей и техникумов.

АИСС обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.

Назначением программы является автоматизация труда работника приёмной комиссии учебного заведения.

Программа обеспечивает:

  • Хранение полной информации обо всех абитуриентах учебного заведения с возможностью её пополнения / изменения
  • Возможность оперативного получения подробной информации о каждом из абитуриентов
  • Автоматическое формирование и распечатку карточки абитуриента
  • Хранение информации обо всех имеющихся кафедрах и специальностях данного учебного заведения с возможностью её редактирования
  • Поиск по базе данных абитуриентов
  • Распечатку дополнительных документов
  • Ведение нормативно-справочной информации: ввод, редактирование и печать справочных таблиц
  • Формирование отчетной документации автоматическое создание приказа на зачисление абитуриентов

 

Посмотреть все скриншоты программы

База данных «Преподаватели»

Главное меню программы по работе с базой данных «Преподаватели»

База данных «Преподаватели» предназначена для автоматизации работы администрации учебных заведений.

Программа обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.

Эта база данных представляюет собой урезанную и немного изменённую версию программы АИСС СПК.

Программа обеспечивает:

  • Хранение полной информации обо всех преподавателях учебного заведения с возможностью её пополнения / изменения
  • Расчёт почасовой нагрузки преподавателей
  • Возможность оперативного получения подробной информации о каждом из преподавателей
  • Автоматическое формирование и распечатку карточки преподавателя
  • Хранение информации обо всех имеющихся кафедрах и специальностях данного учебного заведения с возможностью её редактирования
  • Поиск по базе данных преподавателей
  • Формирование отчетной документации (по осеннему и весеннему семестрам), распечатку дополнительных документов
  • Ведение нормативно-справочной информации: ввод, редактирование и печать справочных таблиц

 

Программа оформления и редактирования заказов

Форма редактирования и просмотра заказа

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

Основные функции программы:

  • создание (заполнение) новых заказов
  • редактирование существующих заказов
  • объединение нескольких заказов в один
  • формирование заявки на продукцию на основании данных их сформированных заказов

Для каждого заказа предусмотрен выбор клиента из базы данных (если клиент новый, предусмотрено добавление информации о нём в базу) и ввод информации о заказе (место заказа, размер и дата предоплаты, и т.п.)

При запуске программы отображается панель инструментов, с которой доступны все основные функции:

Реализовано разграничение прав доступа (при запуске программа требует авторизации) - каждый менеджер может создавать заказы только от своего имени. Кроме того, при редактировании существующих заказов осуществляется фиксация фамилии менеджера, вносившего изменения в чужой заказ.

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

На вкладке "Настройки" пользователь может задать расположение файла базы данных, и папок с прайс-листами и изображениями. Кроме того, возможно включение режима расширенного меню (данная возможность предоставляется только после авторизации с правами администратора)

 

Посмотреть все скриншоты программы