Как сделать, чтобы в Access при выборе определённых значений в выпадающем списке блокировалось поле ввода

Для реализации некоторых тонких моментов в Microsoft Access может быть очень полезен (а иногда и просто необходим) встроенный язык программирования Visual Basic for Applications (VBA). В этой хаутошке рассказано, как использовать VBA для решения одной простой с виду задачи — блокирования текстового поля при выборе в списке определённого значения.

logo-3974080

Прикреплённый файл: vba_0001.mdb

На первый взгляд может показаться, что реализовать подобное очень просто. Однако на деле всё оказывается сложнее. Сделать подобное без применения программирования наверное и невозможно. И хотя сам код такой программы представляет из себя три строчки, его применение может вызвать определённые трудности.

Мы рассмотрим как реализовать подобное на примере русской версии Microsoft Access 2003.

1) Запускаем Microsoft Access. Создаём базу данных (Файл → Создать).

0001_01-6884452

2) В появившемся меню («Создание файла») выбираем пункт меню «Новая база данных».

0001_02-3036945

3) Задаём местонахождение новоиспечённой базы данных.

0001_03-6913499

4) В основном окне базы данных выбираем вкладку «Формы». Создаём форму в режиме конструктора.

0001_04-6119063

5) В появившемся окне конструктора растягиваем будущую форму до тех размеров, которые вам нужны.

0001_05-4164020

6) На панели инструментов выбираем объект «Поле со списком».

0001_06-6871918

7) Размещаем его на форме.

0001_07-5479430

8) В появившемся окне «Создание полей со списком» выбираем пункт «Будет введён фиксированный набор значений».

0001_08-5676439

9) Вводим список значений. Нажимаем кнопку «Далее».

0001_09-2794892

10) Вводим надпись, которая будет размещена слева от списка.

0001_10-5562145

11) На панели инструментов выбираем объект «Поле».

0001_11-2584240

12) Размещаем его на форме.

0001_12-6774199

13) Выделяем наш список. Для этого нужно просто щёлкнуть по нему левой кнопкой мышки. После этого щёлкаем на нём же правой кнопкой мышки. В появившемся контекстном меню выбираем пункт «Свойства».

0001_13-2418901

14) В появившемся окне выбираем вкладку «Другие». В поле «Имя» задаём имя объекту (в нашем случае имя объекта — «Listbox»). Это имя понадобится нам, чтобы обращаться к объекту из программы на Visual Basic (а точнее на VBA).

0001_14-5715110

15) Теперь проделаем тоже самое с нашим текстовым полем.

0001_15-6611049

0001_16-3724627

16) Возвращаемся к свойствам нашего списка. Открываем вкладку «События». Выбираем элемент «После обновления». Щёлкаем по кнопке bt-6974771.

0001_17-7231148

В появившемся окне «Построитель» выбираем пункт «Программы».

0001_18-5396420

У вас должно открыться окно Visaul Basic for Applications. В нём уже будет определена процедура (метод) Listbox_AfterUpdate(). Вам остаётся только вписать следующую строчку:

If Listbox.Value = «3» Then TextBox.Enabled = False Else TextBox.Enabled = True

0001_19-3038430

Закрываем окно VBA, сохраняя при этом программу.

17) Закрываем окно конструктора формы. На вопрос о сохранении созданной формы отвечаем утвердительно =)

0001_20-3372025

18) В окне базы данных два раза щёлкаем по «Форме1» (во вкладке «Формы»).

0001_21-6421973

19) У нас откроется окно формы. Теперь можно проверить, как оно работает.

0001_22-6876024

При выборе числа, отличного от 3 текстовое поле («Поле4» на рисунке) будет доступно.

0001_23-4603177

При выборе числа 3 оно станет недоступно.

0001_24-9813793

20) Для того, чтобы вернуться к редактированию формы (а не запустить её) необходимо щёлкнуть по нужной форме ПРАВОЙ кнопкой мышки и выбрать пункт меню «Конструктор».

0001_25-3213101

Оцените статью
Как сделать это быстро!