Как строится поле с раскрывающимся списком combobox
Элемент ComboBox образует выпадающий список и совмещает функциональность компонентов ListBox и TextBox. Для хранения элементов списка в ComboBox также предназначено свойство Items .
Подобным образом, как и с ListBox, мы можем в окне свойств на свойство Items и нам отобразится окно для добавления элементов ComboBox:
И как и с компонентом ListBox, здесь мы также можем программно управлять элементами.
При добавлении с помощью методов Add / AddRange все новые элементы помещаются в конец списка. Однако если мы зададим у ComboBox свойство Sorted равным true , тогда при добавлении будет автоматически производиться сортировка.
Мы можем получить элемент по индексу и производить с ним разные действия. Например, изменить его:
Настройка оформления ComboBox
С помощью ряда свойств можно настроить стиль оформления компонента. Так, свойство DropDownWidth задает ширину выпадающего списка. С помощью свойства DropDownHeight можно установить высоту выпадающего списка.
Еще одно свойство MaxDropDownItems позволяет задать число видимых элементов списка — от 1 до 100. По умолчанию это число равно 8.
Другое свойство DropDownStyle задает стиль ComboBox. Оно может принимать три возможных значения:
Dropdown : используется по умолчанию. Мы можем открыть выпадающий список вариантов при вводе значения в текстовое поле или нажав на кнопку со стрелкой в правой части элемента, и нам отобразится собственно выпадающий список, в котором можно выбрать возможный вариант
DropdownList : чтобы открыть выпадающий список, надо нажать на кнопку со стрелкой в правой стороне элемента
Simple : ComboBox представляет простое текстовое поле, в котором для перехода между элементами мы можем использовать клавиши клавиатуры вверх/вниз
Событие SelectedIndexChanged
Наиболее важным событием для ComboBox также является событие SelectedIndexChanged , позволяющее отследить выбор элемента в списке:
Создание поля с раскрывающимся списком ComboBox
Как правило поле со списком открывается в подчиненной таблице (на стороне связи М), а в списке отображаются данные из общего атрибута из основной таблицы находящейся на стороне связи типа 1.
Выбираем правой кнопкой поле, которое мы сделаем полем со списком.
Открывается список, в котором выбираем:
Преобразовать элемент вÆПоле со списком Открываем свойства этого поля.
В открывшемся меню выбираем Источник строк, куда вводим оператор
Если, например, мы хотим, чтобы в поле Deptid таблицы Employee открывался список номеров отделов таблицы Department, то оператор будет:
Select deptid from department
В некоторых случаях можно добавить и условие отбора:
В гостинице показать только свободные номера:
Select roomNumber from roomtable where room = freeОператор отберет те строки, которые появятся в ComboBox
Специальные объекты в форме
Формы могут также содержать графику, гиперссылки на Web-страницы и документы, объекты OLE (объекты, связанные с другими приложениями Windows) и другие специальные объекты.
Позже вы сможете выполнить несколько упражнений по созданию учебных форм и их элегантному оформлению в окне конструктора форм (Form Design).
Предполагается существование в таблице поля со свойствами объекта
Чтобы ввести в таблицу изображение необходимо щелкнуть правой кнопкой на этом поле, в раскрывающемся списке выбрать «Вставить объект», откроется окно:
Выбираем ÆСоздать из файла ÆОбзор и выбираем фотографию Флажок Связь позволяет либо вставить объект в таблицу базы данных,
либо установить с ним связь. При этом объект останется вне базы данных и может изменяться независимо.
Добавление в форму дополнительных элементов
Для вставки дополнительных элементов существует панель элементов в Конструкторе форм:
В ней можно выбрать элемент для вставки. Это может быть поле с текстом(TextBox), переключатель, кнопка. Вставляем кнопку:
Для этого в режиме конструктора открываем форму. В открытом окне выбираем, какая операция при нажатии кнопки будет выполняться. Например, приложение. После нажатия кнопки Далее:
Выбираем рисунок и название кнопки:
Добавление на форму дополнительных элементов позволяет создать различные операции.
Варианты заданий
1. Создайте формы для всех таблиц вариантов первой лабораторной работы. В формах для таблиц на стороне связи М создать поля типа ComboBox. База данных состоит из 4 таблиц:
Кодификатор особых случаев эксплуатации (Код особого случая, Название особого случая), Самолет (Номер_борта, Тип_ВС, модификация, год_выпуска, Владелец, Место базирования, Изображение самолета), Инцидент (Номер_борта, Код_особого_случая, Дата_инцидента, Код_оператора, Дата_ввода_записи), Операторы (Фамилия, Код_оператора, Должность).
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
2. Разработать проект базы данных: База данных состоит из 4 таблиц: Ремонтный завод (Номер_завода, Название, Адрес), Ремонт
(Номер_завода, намер_борта, номер_ремонта, Дата_начала_ремонта, Дата_окончания, Код_оператора, Дата_ввода_записи), Самолет (Номер_борта, Тип_вс, модификация, год_выпуска, Владелец, Место базирования, Изображение самолета), Операторы (Фамилия, Код_оператора, Должность).
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
3. Разработать проект базы данных: База данных состоит из 4 таблиц: Отдел_универмага (Номер_отдела, Название, Руководитель_отдела, Этаж),
Продавец (Фамилия, Имя, Номер_продавца), Номер_отдела, Стаж), Товар
(Номер_товара, Наименование, Цена, Тип, Изображение товара), Продажи (Номер_товара, Номер_продавца, Дата_продажи).
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
4. Разработать проект базы данных: База данных состоит из 4 таблиц:
Портрет_заведующего), Преподаватель (Номер_преподавателя, Фамилия, Портрет преподавателя, Номер_кафедры ), Дисциплины (Номер_дисциплины, Название, Семестр, Количество_часов), Расписание (Номер_преподавателя, Номер_дисциплины, Аудитория, Время, Группа)
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
5. Разработать проект базы данных: База данных состоит из 4 таблиц: Работник Автосервиса (Номер_ремонтника, Фамилия, Специальность),
Автомобиль на ремонте (Номер_авто, Вид_ремонта, Дата_приема_на_ремонт, Дата_окончания, Код_запчасти, Стоимость_работы, Код_оператора), Запчасти (Код_запчасти, Стоимость_запчасти, Название, Изображение_запчасти), Оператор (Код_оператора, Фамилия_оператора)
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
6. Разработать проект базы данных: База данных состоит из 4 таблиц: Кодификатор Зон контроля (Код_элемента, Название_элемента,
Обозначение), Самолет (Номер_борта, Тип_вс, Модификация, Год_выпуска, Владелец), Дефекты (Код_элемента, Название элемента, Номер_борта, Изображение дефекта, Дата_осмотра, Код_оператора), Оператор (Код_оператора, Фамилия_оператора).
Определите индексы таблиц, соедините таблицы в соответствии с индексами. Введите 12-14 записей в таблицы.
Отчет
Отчет по лабораторной работе должен содержать:
Краткое описание выполненной работы.
Окна Конструкторов, использованных в работе. Формы для всех таблиц с описанием полей. Работу форм с использованием ComboBox
Контрольные вопросы
Какова последовательность проектирования формы для таблицы?
Как строится поле с раскрывающимся списком ComboBox?
Как ввести изображение используя поля формы?
Лабораторная работа № 3
Конструирование запросов
Цель лабораторной работы:
1. Подготовка отчетов с помощью Конструктора запросов MS
2. ,Знакомство с языком SQL.
3. Построение запросов на языке SQL.
4. Подготовка отчета по результатам лабораторной работы
Запросыпредназначены,прежде всего,для отбора данных.Вы можетесоздать простой запрос для поиска записей в одной таблице, а можете сформулировать сложный запрос, включающий в себя данные из нескольких таблиц и учитывающий множество условий отбора. Ниже перечислены только некоторые вопросы, ответы на которые можно найти с помощью запросов.
Какие сотрудники были приняты на работу за последние три месяца? Каково количество новых заказчиков, к которым я обращался на последней неделе?
Каковы показатели по средне зарплате по отделам
Запрос на выборку
Продемонстрируем довольно простой запрос: с помощью него мы находим все записи в таблице Отделы для Ивана Петрова. Такой тип запроса называется запросом на выборку (select query).Он предназначен для поиска записей,удовлетворяющих сформулированными вами условиям отбора записей.
Позже мы более подробно остановимся на функциях запросов на выборку и рассмотрим несколько конкретных примеров работы в окне конструктора запросов (Query Design).
Другие типы запросов
Возможности конструктора запросов не ограничены созданием только одного типа запросов — запросов на выборку. Запросы можно использовать не только для поиска записей, но и для внесения в них изменений. С помощью запроса можно создать перекрестное представление данных (путем создания перекрестного запроса), создать таблицу,удалить из нее определенные записиили же добавить записи в одну таблицу из другой. Существуют следующие типы запросов.
Перекрестный запрос.С помощью запросов этого типа вы можете сделатьобзор по категориям данных, то есть обобщить информацию. Например, можно выяснить, каков был объем продаж по каждому продукту в каждом месяце
прошлого года. При создании запросов этого типа можно воспользоваться Мастером перекрестных запросов (Crosstab Wizard).
Запрос на создание таблицы.Когда вы превращаете запрос на выборку взапрос на создание таблицы, то записи, полученные в результате выполнения запроса, помещаются в новую таблицу.
Запрос на обновление.С помощью запросов этого типа можно внестиизменения в группу записей таблицы (например, в некотором поле изменить все прописные символы на строчные), а также выполнить редактирование данных, или внести изменения в одну таблицу, используя данные из другой.
Запрос на добавление.Запросы этого типа позволяют добавлять данные изодной таблицы в другую.
Запрос на удаление.Запрос на удаление позволяет исключить из таблицыцелую группу записей, вместо того чтобы удалять каждую запись из таблицы вручную.
Основы языка SQL
Язык SQL – язык высокого уровня для создания запросов в реляционной базе данных.
Основной оператор языка SQL это — SELECT : SELECT [ALL | DISTINCT] список полей данных FROM список таблиц
[WHERE условие поиска]
[GROUP BY имя_столбца [, имя_столбца]…] [HAVING условие поиска]
[ORDER BY критерий упорядочивания].
Обязательными в запросе на SQL являются фразы SELECT и FROM, остальные могут использоваться для более подробных запросов. Во фразе WHERE указывается условие отбора записей из таблиц, имена которых указаны
в FROM. Фраза GROUP BY объединяет результирующее множество в группы, определяемые именами полей, указанными за GROUP BY. Все строки с одинаковыми значениями полей объединяются в одну строку.
Запрос на языке SQL можно набрать в командном окне либо создать запрос с помощью Конструктора запросов.
Удобное средство – использование оператора SQL для соединения двух таблиц. Например, соединить две таблицы из первой лабораторной работы Сотрудники (Employees) и Отдел (Department) по общему атрибуту
Select * from Department, Employees where Department.depnum = Employees.depmum
Такой же запрос:
Select * from Employees join Department on Department. depnum = Employees. Depnum
Возможны вложенные запросы:
Select lastname from Employees, where depnum in (select depnum from Department where depnum = d101 or depnum = d102)
Существуют операторы вставки (insert), обновления (update) и удаления (delete) данных в/из таблиц.
Оператор insert вставляет строку в таблицу:
Insert into bookauth values (1234, 344) в таблицу Bookauth вставляются значения в порядке следования атрибутов в таблице.
Insert into author (author_id, first_name, last_name)
values (125, ‘Anton’, ‘Antonov’)
в таблицу будут вставлены значения для перечисленных полей, если остальные поля помечены как NULL – необязательны для заполнения.
Оператор Update изменяет одну или несколько строк таблицы:
Update bookauth set author_id = 567 where book_id =
оператор меняет значение поля author_id для всех значений поля book_id равных 111.
Оператор Delete удаляет строки таблицы по заданному условию:
Delete from authors where city = London
Создание запроса
Для создания запроса используется Конструктор запросов.
Из главного меню:
Главное меню Æ Создание Æ Конструктор запросов Открывается окно Конструктора, в котором предлагается выбрать
таблицы для создания запроса:
Выбираем нужные нам таблицы, нужные поля. Для этого кнопкой Добавить добавляем таблицы в поле конструктора. В таблице ниже выбираем нужные поля из соответствующих таблиц
Конструируем запрос «Вывод сотрудников отдела, начальник которого Шифрин» в конструкторе запросов: Выбираем поля из раскрывающегося списка: manager, lastname, birthdate. В поле Условие отбора задаем значение ‘Shifrin’
Если условие составное, например,
Manager = ‘Shifrin’ AND birthdate = ’02.02.1980’, то условие набирается в строке «Условие отбора».
Если условие типа «ИЛИ», то условие набирается в строках «Условие отбора» и строке «ИЛИ»
Чтобы запрос выполнить, нажимаем в верхнем левом углу красный восклицательный знак
Запрос с параметром.
Можно указать поле, значение которого заранее не известно и значение которого вводится при выполнении запроса. Например, Номер отдела depnum.
В строку «Условие отбора» в квадратных скобках вводится текст, который появится в окошке. В нашем случае [number].
При выполнении запроса открывается окошко, в которое вводится искомое значение параметра:
При вводе в поле «number» значения номера отдела, например, 101 результат выполнения запроса будет выглядеть примерно так:
Запрос на добавление
Эквивалент запроса на добавление на языке SQL можно получить нажав правой кнопкой мыши на поле запроса:
Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой.
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Выпадающий список с Tkinter и Python
Язык Python имеет множество графических библиотек. Одной из них является Tkinter. И в сегодняшней статье мы рассмотрим как создать раскрывающийся список с Python и Tkinter, а также выведем индексы выбранных элементов в графическое окно.
Если вы хотите создать раскрывающийся список элементов и разрешить пользователю выбирать элементы списка, вы можете использовать виджет Combobox. Виджет Combobox позволяет создать выпадающий список, в котором можно мгновенно выбрать список элементов. Однако, если вы хотите получить индекс выбранных элементов в виджете со списком, вы можете использовать метод get(). Метод get() возвращает целое число выбранного элемента, известное как индекс элемента.
Давайте возьмем пример, чтобы увидеть, как это работает. В этом примере мы создали список дней недели в раскрывающемся списке, и всякий раз, когда пользователь выбирает день из раскрывающегося списка, он будет печатать и отображать индекс выбранного элемента в виджете «Label». Чтобы напечатать индекс, мы можем объединить строку, приведя данный индекс к строке.
from tkinter import *
from tkinter import ttk
# Создайте экземпляр фрейма или окна tkinter
window = Tk()
# Установить размер окна
window.geometry(«700×350»)
# Создайте функцию для очистки поля со списком
def clear_combobox():
combobox.set('')
# Функция для печати индекса выбранной опции в Combobox
def callback(*arg):
Label(window, text = 'Индекс равен' + str(combobox.current()) + ' для ' + ' ' + str(var.get()), font = ('Helvetica 12') ).pack()
# Создайте виджет со списком
var = StringVar()
combobox = ttk.Combobox(window, textvariable = var)
combobox['values'] = days
combobox['state'] = 'readonly'
combobox.pack(fill='x',padx= 5, pady=5)
# Установите трассировку для данной переменной
var.trace('w', callback)
# Создайте кнопку, чтобы очистить выбранное текстовое значение поля со списком
button = Button(window, text = 'очистить', command = clear_combobox)
button.pack()
Выполнение приведенного выше кода отобразит виджет со списком дней. Всякий раз, когда вы выбираете день из списка, он будет печатать индекс и соответствующий элемент в виджете метки.
Таким образом, с помощью Tkinter и Python, мы создали выпадающий список дней недели.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
VBA Excel. Элемент управления ComboBox (поле со списком)
ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.
Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.
Поле со списком используется в тех случаях, когда необходимо добавить в форму информацию, которая заранее известна, а ее отдельные позиции можно сгруппировать в список, а также для ручного ввода с клавиатуры или вставки из буфера обмена, если необходимое значение в списке отсутствует.
Элемент управления ComboBox незаменим при больших списках. При списках из нескольких позиций его можно заменить на ListBox, который отображает позиции для выбора сразу после загрузки формы, не требуя дополнительных действий от пользователя.
Свойства поля со списком
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height. |
AutoTab | Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена. |
ColumnCount | Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1. |
ColumnHeads | Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False. |
ColumnWidths | Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;). |
ControlSource | Ссылка на ячейку для ее привязки к элементу управления ComboBox. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на элемент управления. |
Enabled | Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True. |
Font | Шрифт, начертание и размер текста в поле. |
Height | Высота элемента управления ComboBox. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка. |
List | Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения. |
ListIndex | Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1. |
ListRows | Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8. |
Locked | Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False. |
MatchRequired | Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False. |
MaxLenght | Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет. |
RowSource | Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel). |
TabIndex | Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0. |
Text | Текстовое содержимое (значение) поля (=Value). |
TextAlign | Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка. |
Value | Текстовое содержимое (значение) поля (=Text). |
Visible | Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт. |
Width | Ширина элемента управления. |
* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.
В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.
Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.
Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление комбинированного списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ComboBox на проекте пользовательской формы.
Способы заполнения ComboBox
Используйте метод AddItem для загрузки элементов в поле со списком по одному: