Продолжим совершенствовать нашу базу данных и функционал по работе с ней.
Приведем в порядок элементы управления формы contacts. Выделим все элементы управления в области данных и перейдем во вкладку Упорядочить, в разделе Таблица нажмем В столбик. Таким образом все наши элементы окажутся упорядочены в границах условной сетки, по желанию такой порядок можно отменить и расположить элементы по своему усмотрению, изменяя их размер либо мышью либо задавая размеры в свойствах соответствующих элементов.
Наша форма приобрела аккуратный вид.
Дополним нашу базу данными о
компаниях в которых работают наши контакты.
Создадим
таблицу company
с
полями [id]
– счетчик, [name]
– текстовый, [adress]
– текстовый.
Заполнять
таблицу будем импортируя из внешнего источника (файла), можно импортировать
данные многими способами (из Excel,
файлов
Access,
файлов
других баз данных и др.).
Подготовим простой текстовый файл с набором вымышленных компаний и адресов. Назовем файл company.txt. В первой строчке файла через точку с запятой перечислим название полей, соответствующих нашим полям в таблице company - [name] и [adress]. Перечислим наименования компаний и их адреса отделяя их точкой с запятой.
---------------------------------------------------------- company.txt---------------------------------------------------------------------
name;adress
ООО Мотор;Россия, г. Москва, Космонавтов ул., 76, корп. 1
ЗАО ЖелДор;Россия, г. Москва, Шоссейная ул., 19, корп. 5
ООО ТверьВектор;Россия, г. Тверь, Мирная ул., 87, оф. 30
ОАО СофтОрионЛизинг;Россия, г. Москва, Калинина ул., 12, корп. 2
МКК ГорМобайл;Россия, г. Самара, Луговой пер., 35, оф. 2
ПАО МикроГлавМаш;Россия, г. Москва, Совхозная ул., 12, корп. 2
ПАО Нефть;Россия, г. Уфа, Пушкина ул., дом 32
ОАО МеталВостокОрион;Россия, г. Казань, Озерная ул., 90, корп. 7
ООО Компания РемСбыт;Россия, г. Москва, Вокзальная ул., 86, корп. 6
ПАО ГазВостокМор;Россия, г. Москва, Молодежный пер., 11, корп. 4
ПАО Теле;Россия, г. Москва, Юбилейная ул., 20, корп. 9
ОАО МеталВектор;Россия, г. Хабаровск, Южная ул., 55, оф. 7
ООО Компания ВодСантех;Россия, г. Москва, Заслонова ул., 21, корп. 7
----------------------------------------------------------------------------------------------------------------------------------------------------
Красная линия показывает границу полей.
На вкладке Внешние данные в разделе Импорт и связи нажмем Текстовый файл. В диалоговом окне настройки импорта выберем путь до текстового файла с данными, который мы хотим загрузить. Выберем пункт Добавить копию записей в конец таблицы company, следуем далее.
Диалог предлагает нам выбрать способ как весь наш текст разделить на два поля, но так как мы используем пробелы и запятые для обозначения наименований и адресов, нам нужен символ который мы будем использовать только для отделения одной части от другой и это точка с запятой, далее мы это увидим, выбираем пункт С разделителем и следуем далее.
Разделителем полей выбираем точку с запятой (хотя программа это уже поняла, правильно разделив наши данные), отметим что первая строка это имена полей.
Завершаем процесс импорта. Переходим в таблицу company и убеждаемся, что наши данные импортировались корректно.
В таблице contacts добавим поле [companyid], в выпадающем списке типов данных выберем Мастер подстановок
Выберем первый пункт – Значения из другой таблицы, далее.
Выбираем таблицу company в качестве источника данных, далее.
Выбираем поле [name] в качестве источника списка, завершим работу мастера соглашаясь на условия по умолчания.
Сохраняем изменения в конструкторе и переходим в режим таблицы. Теперь для каждого из контактов мы можем выбрать организацию которую он представляет. Логично предположить, что в одной организации работает много людей контакты которых приходится заносить в базу и каждый раз вносить ее наименование и адрес не целесообразно.
Перейдем в уже знакомую нам Схему данных со вкладки Работа с базами данных и отобразим таблицу company. Курсором мыши перетянем поле [companyid] на поле [id] таблицы company. Теперь наши таблицы связаны связью Один ко многим, что означает: одному контакту соответствует одна компания из множества компаний.
Добавим возможность выбора компании для контакта на форме contacts. Перейдем в режим конструктора формы и на панели элементов управления выберем элемент управления – Поле со списком. Поместим его на свободное место
области данных.
Этапы создания поля со списком на форме аналогичны тому, как это было сделано в таблице contacts.
Источник данных таблица company.
Источник списка поле [name].
Завершим работу мастера, сохраним изменения и перейдем в режим работы с формой. Теперь для каждого контакта мы имеем возможность выбрать организацию которую он представляет. В режиме конструктора встроим наше поле в сетку и отредактируем надпись выпадающего списка.
Для удобной работы добавим на форму кнопку сохранения записи. В режиме конструктора из панели элементов управления перетянем элемент управления – Кнопка.
Мастер создания кнопок предлагает различные варианты событий нажатия кнопки, из категории Обработка записей выберем действие Сохранить запись, далее.
Зададим название кнопки как “Сохранить”, завершим работу мастера.
Перейдем в режим работы с формой,
теперь кнопку “Сохранить”
можно использовать для сохранения записей.