Всем привет! 👋
Сегодня мы научим вас добавлять новые значение в источник исходных данных используя ComboBox и вносить изменения в выпадающий список без закрытия/открытия формы.
📢 Файл с примером размещен в конце статьи 🔽
▶️ Цели и задачи
В качестве примера рассмотрим исходные данные предыдущего обзора:
🔶 Представленное решение уже "умеет":
- формировать выпадающий список;
- создавать зависимый выпадающий список;
- выполнять поиск значения (стоимости);
- удалять неактуальные значения из данных исходной таблицы
🎯 Задача: добавить возможность вносить новые значения в таблицу исходных данных и отображать их в ComboBox.
▶️ Элементы управления
Если задача удалять значения для вас не актуальна, то можете назначить представленный ниже макрос на уже имеющийся элемент управления CommandButton:
Иначе, добавьте еще один:
▶️ Как добавить новое значение в выпадающий список
Обсуждая свойства ComboBox мы говорили, что пользователю доступен не только выбор определенного значения но и его ввод.
А следовательно, задав нужный макрос, можно добавить новое значение в источник данных используя ComboBox, если оно отсутствует в выпадающем списке.
Например, требуется добавить новую категорию и товар:
Для этого применим макрос:
📝 Примечание автора: Если требуется можно добавить очистку ComboBox после внесения данных
➡️ Этот код заполнит строку в источнике данных, используя значения из ComboBox1 и ComboBox2, а также автоматически пронумерует строки в столбце A, основываясь на номере последней строки:
📝 Примечание автора: Данный подход также позволит добавить только новое значение ComboBox2 (товар) для выбранного из выпадающего списка в ComboBox1 значения (категории).
▶️ Дополнения
Напомним, что в рассмотренном примере установлено ограничение ввода на элементе управления TextBox:
Чтобы, разрешить ввод вернем свойство Locked=False:
И добавим в строку кода условие:
➡️ Теперь можно добавить не только новую категорию и наименование товара, но и его стоимость:
🔔 Чтобы новое значение, добавленное макросом, автоматически появлялось в ComboBox1, после того как форма уже открыта, можно воспользоваться методом .AddItem для добавления нового значения в комбобокс:
➡️ Теперь новое значение внесенное в исходный список будет добавлено в выпадающий список и повторное открытие/закрытие формы не потребуется:
По желанию, используя оператор MsgBox можно вывести сообщение пользователю об успешном вводе данных или ошибке:
Например,
В этом случае, если TextBox или один из ComboBox будет пуст, пользователь получит сообщение, что введенных данных не достаточно:
Но на этом возможности ComboBox не заканчиваются 😉
⏺ В следующем обзоре обсудим: как найти строку содержащую выбранное значение и его заменить.
📍 Рекомендуемые статьи 🔽