sovietsova

На Пикабу
14К рейтинг 94 подписчика 2 подписки 8 постов 8 в горячем
63

Приводим данные в порядок с помощью Microsoft Access (часть8)

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Microsoft Access предоставляет множество визуальных средств разработки приложения по работе с базой данных. Но рано или поздно возникает необходимость в более тонкой настройке отдельных ее частей и добавление нового функционала, который невозможно реализовать с помощью мастеров и конструкторов. Для этого Microsoft Access да и все программы из пакета MS Office могут расширять свой функционал с помощью встроенного языка программирования VBA (Visual Basic for Applications). Изучив основы языка VBA на одном из продуктов MS Office, в нашем случае это Access, его можно применять в других программах (Excel, Word, Power Point). Задачи автоматизации рутинных процессов не меняются долгое время. Не вдаваясь в новомодные течения, круг задач которые решает VBA будет востребован еще долго. Преимущества VBA в том, что он консервативен, но по прежнему востребован и не подвержен безумным обновлениям, что позволяет неискушенному пользователю спокойно и стабильно работать.

Создадим форму, которая всегда будет открываться при запуске нашей базы. Так называемое главное окно. На вкладке Создание нажмем Пустая форма.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Назовем ее main.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Далее Файл -> Параметры -> Текущая база данных, опция Форма просмотра, в выпадающем списке выберем форму main. Форма будет открываться при запуске приложения и с помощью нее можно организовать навигацию и доступ к другим объектам базы данных.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

На вкладке Работа с базами данных нажмем на кнопку Visual Basic. Откроется окно редактора VBA. В редакторе мы будем писать код, который сможет обращаться ко всем нашим объектам (таблицы, формы, запросы, отчеты и т. п.) и принадлежащим им элементам, менять их свойства и поведение.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Минимальной структурной единицей программы на VBA является процедура (ее еще называют макросом). Процедура начинается со служебного слова Sub, далее следует имя процедуры (как правило отражает назначение процедуры), круглые скобки, заканчивается процедура служебной конструкцией End Sub. Внутри процедуры пишется код на языке VBA.


Sub MyFirstProcedure()

<Код на языке VBA>

End Sub

На панели инструментов нажмем Insert - > Module. Модуль это еще один объект нашей базы. В нем мы будем размещать наши процедуры, а затем вызывать их на исполнение. В окне кода модуля Module1 напишем следующее:


Sub MyFirstProcedure()

Debug.Print “Hello, world!”

End Sub

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Убедимся что у нас открыто окно Immediate (View -> Immediate Window), оно необходимо для того, чтобы иметь возможность увидеть результаты выполнения программы в процессе ее отладки. На панели инструментов нажмем зленый треугольник (Run Sub), в окне Immediate увидим результат выполнения процедуры.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Теперь выведем наше приветствие на форму main. В режиме конструктора добавим текстовое поле и в окне свойств поля дадим ему имя txtHello.

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

С помощью VBA обратимся к этому полю из процедуры и поместим в него текст - Hello, world! Процедура будет иметь следующий вид:


Sub MyFirstProcedure()

Form_main.txtHello.Value = "Hello, world!"

End Sub

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Запустим ее на исполнение и убедимся, что текстовое поле txtHello формы main получило значение - "Hello, world!"

Приводим данные в порядок с помощью Microsoft Access (часть8) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Показать полностью 9
64

Приводим данные в порядок с помощью  Microsoft Access (часть7)

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Продолжим знакомство с SQL. Рассмотрим запросы на вставку, обновление и удаление данных.

Запрос на вставку данных начинается с оператора INSERT INTO, далее следует имя таблицы и в скобках перечисление полей таблицы в которые мы хотим добавить данные, затем оператор VALUES и в скобках значения полей через запятую. Важно правильно соотнести перечисление полей и значений, иначе из-за несовпадения типов вставка не произойдет или произойдет со вставкой данных не в те поля. Заметим, что текстовые значения полей мы заключаем в двойные кавычки, а вот значение поля [companyid] нет, так как значение данного поля числовое.

Запрос на вставку данных будет иметь вид:


INSERT INTO contacts (name, surname, email, companyid)

VALUES ("Мария", "Пыхтина", "mariya85@ya.ru", 1);


Выполним запрос, нажав на красный восклицательный знак, Access предупреждает нас об изменениях, которые произойдут после выполнения запроса.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Убедимся, что данные добавлены корректно.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Запрос на обновление предназначен для изменения данных полей. Начинается запрос с оператора UPDATE, затем следует имя таблицы, оператор SET и перечисление полей с их новыми значениями.

Важно помнить, что результаты обновления невозможно отменить. Правильность выполнения запроса можно проверить запросом на выборку, удовлетворяющего параметрам заданным в запросе на обновление. Сразу добавим секцию WHERE иначе обновление коснется всего поля.

Запрос на обновление данных будет иметь вид:


UPDATE contacts SET email="mariya85@rambler.ru" WHERE id =21;


Выполним запрос.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Убедимся, что данные обновились.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Запрос на удаление начинается с оператора DELETE, затем следует символ (*) - что означает удаление записи полностью, если же нам надо удалить значение нескольких полей мы пользуемся запросом на обновление, затем оператор FROM с указанием имени таблицы, сразу же добавим секцию WHERE иначе будут удалены все записи таблицы.

Удаленные записи нельзя будет восстановить. Поэтому делать это нужно крайне аккуратно. И не забывать о том, что у нас есть связанные данные в других таблицах, которые тоже придется удалять. Чаще всего данные отмечаются каким-либо признаком и просто исключаются из выборки. Для этого у нас может послужить поле [active]. Так же при удалении записи, значение поля [id] с типом данных счетчик исключается из счетчика.

Запрос на удаление данных будет иметь вид:


DELETE * FROM contacts WHERE id =21;


Выполним запрос.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Убедимся, что указанная запись удалена.

Приводим данные в порядок с помощью  Microsoft Access (часть7) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Показать полностью 6
214

Приводим данные в порядок с помощью Microsoft Access (часть6)

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Основу работы с реляционными базами данных составляет язык структурированных запросов SQL (Structured Query Language). Это набор инструкций по манипулированию объектами базы данных, с помощью них мы можем создавать таблицы, добавлять в них данные, производить выборку данных, удалять данные и удалять таблицы. Для всего этого мы пользовались соответствующими мастерами, но под капотом Access формулировал эти задачи на языке SQL и даже генерировал для нас готовый SQL код. Основные команды языка применимы к большинству реляционных баз данных (MS SQL Server, Oracle, MySQL, PostgreSQL, SQLite и т. п.), это устоявшийся стандарт в мире реляционных баз. Различные СУБД расширяют возможности SQL собственным функционалом, но основной синтаксисе с незначительными особенностями применим ко всем.

Откроем наш запрос contacts в режиме SQL. В окне построителя запросов мы наблюдаем код на языке SQL, код сгенерировал Access, но мы бы могли написать его сами и он бы заработал. Разберемся в структуре SQL запросов на более простом примере.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Самыми распространенными запросами являются:

запрос на выборку;

запрос на вставку;

запрос на удаление.

Самый простой запрос на выборку начинается с оператора SELECT, затем следует перечисление необходимых полей, затем оператор FROM после чего указывается имя таблицы (таблиц) которым принадлежат эти поля, например:


SELECT name, surname, email FROM contacts;


В результате мы получим все записи таблицы contacts, представленные тремя полями. Если же мы хотим вывести все поля мы можем написать SELECT * FROM contacts; В конце инструкции ставится точка с запятой.

Через вкладку Создание откроем уже не Мастер запросов, а Конструктор запросов. Не будем выбирать таблицу предложенную диалоговым окном и перейдем в SQL режим. Напишем здесь уже известную нам конструкцию SELECT name, surname, email FROM contacts; и отправим ее на исполнение нажав на кнопку с красным восклицательным знаком.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Убедимся в правильности вывода, действительно программа вывела все записи представленные тремя полями

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Заменим перечисление полей в секции SELECT на символ * (звездочка):


SELECT * FROM contacts; и выполним запрос.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Результатом запроса будут все записи и все поля таблицы contacts.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Предположим нас интересуют только активные контакты. Реализуем это в SQL запросе, для этого существует оператор WHERE, это оператор условия. Запрос будет выглядеть следующим образом:

SELECT * FROM contacts WHERE active=true;


Иными словами показать все записи таблицы contacts где поле [active] имеет значение ИСТИНЫ, в SQL коде мы уже строго придерживаемся английского значения слова ИСТИНА – true и ЛОЖЬ – false.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Мы можем задавать несколько значений в секции WHERE. …WHERE условие1 AND условие2 AND условие3, перечисляя их через логические операторы AND. Например:


SELECT * FROM contacts WHERE active=true AND [regdate]= #27/10/2022#;


Запрос покажет все записи из таблицы contacts со значением поля [active] равным ИСТИНА и датой регистрации [regdate] равной 27.10.2022, заметим что дату мы обернули в символ решетки и разделили день, месяц, год через слеш, это необходимо при работе с датами в запросах.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В нашем запросе contacts, помимо таблицы contacts, есть еще таблица phones. В запросах мы можем указывать больше одной таблицы, но необходимо указывать по каким полям будет объединяться результат, для этого существует оператор INNER JOIN. Вообще тема объединения таблиц довольна обширна, мы же рассмотрим самый распространенный вид объединения - внутренне. Наш запрос усложняется наличием двух таблиц, имена полей теперь необходимо указывать в формате – имя_таблица.имя_поля, так как в разных таблицах могут находится поля с одинаковыми именами и как мы помним у нас в обоих таблицах есть поле [id]. Запрос на объединение таблицы contacts и phones c возможностью выбора полей из обоих таблиц будет выглядеть следующим образом:


SELECT contacts.name, contacts.surname, contacts.email, phones.phone

FROMcontacts INNERJOIN phones ON contacts.id = phones.userid;


Иными словами код говорит – выбрать поля [name], [surname], [email], [phone] из объединенных таблиц contacts и phones, где каждой записи таблицы contacts соответствует запись из таблицы phones, в которых поля [id] и [userid] совпадают.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Выполним запрос нажав на красный восклицательный знак.

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Дополним наш запрос секцией WHERE, для выбора только активных контактов, при этом само поле [active] выводить не обязательно.


SELECT contacts.name, contacts.surname, contacts.email, phones.phone

FROM contacts INNER JOIN phones ON contacts.id = phones.userid

WHERE active=true;

Приводим данные в порядок с помощью Microsoft Access (часть6) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Показать полностью 11
81

Приводим данные в порядок с помощью Microsoft Access (часть5)

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

В этой части мы познакомимся с ещё одним замечательным объектом Access – Отчеты (report).

Отчеты предназначены для наглядного вывода информации конечному потребителю, как правило отчеты имеют вид документов установленной формы (списки, справки и т. п.), которые распечатываются на бумаге, либо в привычных форматах (doc, pdf и т. п.) передаются пользователям.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

На вкладке Создание выберем Мастер отчетов. В диалоговом окне в качестве источника данных выберем Запрос contacts. Заметим, что если бы мы выбрали в качестве источника таблицу, то на выбор у нас бы был только набор полей из этой таблицы, а в запросе contacts у нас есть набор полей из разных таблиц. Хотя мастер отчетов позволяет выбирать несколько таблиц и тем самым выбрать все нужные нам поля, в запросе contacts у нас есть условие – выводить только активные контакты.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Выберем для отчета поля [name], [surname], [email], [companyid], [phone], далее.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Мастер предлагает сгруппировать наши данные удобным для чтения способом, так как у нескольких наших контактов имеется более одного телефонного номера и мы хотели бы для одной записи конкретного контакта видеть их все, в противном случае для каждого второго и более телефонного номера будет дублироваться контакт, как мы это видели в запросе contacts. Мы можем задать много уровней группировки, ведь у нас может быть много таких таблиц как phones, но пока ограничимся ей, далее. Не будем задавать сортировку, оставим как есть.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Выберем ступенчатую структуру, при желании это можно будет поменять в конструкторе отчетов. Чтобы все данные уместились на странице выберем альбомную ориентацию.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Завершим работу мастера. Теперь в области объектов базы данных появился новый объект – отчет contacts. Как и другие объекты базы, структуру отчета можно редактировать в режиме конструктора.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Перейдем в режим конструктора и придадим нашему отчету рабочий вид. Структурно отчет разделен на несколько областей, заголовок отчета – будет выводить данные один раз в заглавии документа, верхний и нижний колонтитул – будет выводить данные сверху и снизу каждой страницы, область документа – выводит данные отчета на каждую страницу, заголовок группы – группирует повторяющиеся записи. Кроме того имеется возможность редактирования структуры отчета в режиме Макета, для более наглядного расположения элементов отчета.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

Изменим надписи полей на удобочитаемые.

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть5) Microsoft office, Microsoft Access, База данных, Windows, Длиннопост
Показать полностью 9
56

Приводим данные в порядок с помощью Microsoft Access (часть4)

Продолжим приводить наши данные в порядок.

Познакомимся с такими объектам базы данных как Запрсы (query). В работе с электронными таблицами, ярчайшим представителем которых является MS Excel, инструментом для выборки данных с заданными критериями является инструмент Фильтр. В Access этот инструмент тоже имеется и в некоторых случаях очень полезен. Но с ростом количества данных и усложнением их структуры каждый раз и под разные выборки манипулировать инструментом Фильтр становится сложнее. Для упрощения работы по выборке данных и существуют Запросы (в теории баз данных их еще называют представлениями).

Дополним таблицу contacts дополнительными данными для более наглядной работы с ней.

name;surname;email;companyid

Степан;Яковлев;Evgenij164@hotmail.com;ПАО Нефть

Игнат ;Богданов;Anton182@live.com;ПАО Теле

Евгений;Гурьев;Aleksandr91@bk.ru;ООО Компания ВодСантех

Марфа;Жукова;Marfa60@yahoo.com;ОАО МеталВостокОрион

Алина;Зуева;Alina124@msn.com; МКК ГорМобайл

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Из вкладки Создание вызовем Мастер запросов.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Выберем простой запрос.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Так как нас интересует работа с контактами выберем таблицу contacts и все ее поля. Завершим работу мастера согласившись на условия по умолчанию, в любом случае все настройки мастера можно будет поменять самостоятельно когда это потребуется.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Результат простого запроса похож на обычную таблицу.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Перейдем в режим Конструктора запроса. В нижней части конструктора для каждого поля нашей таблицы мы можем задавать условия на отбор тем самым формируя сложные выборки. Предположим нас интересуют только активные контакты с номерами их телефонов. В условиях отбора поля [active] укажем Истина.

Отобразить таблицу и выберем таблицу phones, дважды кликнем на поле [phone], которое отобразится в наборе полей для запроса нижней части мастера запросов. Выполним запрос нажав на красный восклицательный знак панели инструментов.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост

Заметим, что контакты которые у нас имеют два и более номера телефонов дублируются, но с разными телефонами, в последствие мы это исправим. Теперь в области объектов у нас появился новый объект – Запрос contacts и мы сможем использовать его в других объектах базы.

Приводим данные в порядок с помощью Microsoft Access (часть4) Microsoft office, Microsoft Access, Windows, Компьютер, Длиннопост
Показать полностью 7
84

Приводим данные в порядок с помощью Microsoft Access (часть3)

Продолжим совершенствовать нашу базу данных и функционал по работе с ней.

Приведем в порядок элементы управления формы contacts. Выделим все элементы управления в области данных и перейдем во вкладку Упорядочить, в разделе Таблица нажмем В столбик. Таким образом все наши элементы окажутся упорядочены в границах условной сетки, по желанию такой порядок можно отменить и расположить элементы по своему усмотрению, изменяя их размер либо мышью либо задавая размеры в свойствах соответствующих элементов.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Наша форма приобрела аккуратный вид.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Дополним нашу базу данными о компаниях в которых работают наши контакты. Создадим таблицу company с полями [id] – счетчик, [name] – текстовый, [adress] – текстовый. Заполнять таблицу будем импортируя из внешнего источника (файла), можно импортировать данные многими способами (из Excel, файлов Access, файлов других баз данных и др.).

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Подготовим простой текстовый файл с набором вымышленных компаний и адресов. Назовем файл 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

----------------------------------------------------------------------------------------------------------------------------------------------------


Красная линия показывает границу полей.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

На вкладке Внешние данные в разделе Импорт и связи нажмем Текстовый файл. В диалоговом окне настройки импорта выберем путь до текстового файла с данными, который мы хотим загрузить. Выберем пункт Добавить копию записей в конец таблицы company, следуем далее.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Завершаем процесс импорта. Переходим в таблицу company и убеждаемся, что наши данные импортировались корректно.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В таблице contacts добавим поле [companyid], в выпадающем списке типов данных выберем Мастер подстановок

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Выберем первый пункт – Значения из другой таблицы, далее.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Выбираем таблицу company в качестве источника данных, далее.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Выбираем поле [name] в качестве источника списка, завершим работу мастера соглашаясь на условия по умолчания.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Сохраняем изменения в конструкторе и переходим в режим таблицы. Теперь для каждого из контактов мы можем выбрать организацию которую он представляет. Логично предположить, что в одной организации работает много людей контакты которых приходится заносить в базу и каждый раз вносить ее наименование и адрес не целесообразно.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перейдем в уже знакомую нам Схему данных со вкладки Работа с базами данных и отобразим таблицу company. Курсором мыши перетянем поле [companyid] на поле [id] таблицы company. Теперь наши таблицы связаны связью Один ко многим, что означает: одному контакту соответствует одна компания из множества компаний.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Добавим возможность выбора компании для контакта на форме contacts. Перейдем в режим конструктора формы и на панели элементов управления выберем элемент управления – Поле со списком. Поместим его на свободное место области данных.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Этапы создания поля со списком на форме аналогичны тому, как это было сделано в таблице contacts.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Источник данных таблица company.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Источник списка поле [name].

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Для удобной работы добавим на форму кнопку сохранения записи. В режиме конструктора из панели элементов управления перетянем элемент управления – Кнопка.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Зададим название кнопки как “Сохранить”, завершим работу мастера.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перейдем в режим работы с формой, теперь кнопку “Сохранить” можно использовать для сохранения записей.

Приводим данные в порядок с помощью Microsoft Access (часть3) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Показать полностью 23
166

Приводим данные в порядок с помощью Microsoft Access (часть 2)

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Продолжим совершенствовать нашу базу данных и функционал по работе с ней.

Добавим в таблицу contacts новое поле [active], которое будет характеризовать активность контакта (активен или не активен). Тип данных установим Логический. Логический (или булевый от англ. boolean) тип данных имеет всего два значения ИСТИНА или ЛОЖЬ (также может обозначаться: как 1 или 0, да или нет, true или false) применяется в тех случаях, где состояние объекта может быть охарактеризовано этими двумя значениями, во многих случаях этого достаточно. В дальнейшем этот признак позволит фильтровать выборку данных и строить логику работы. Например, показать список только активных контактов.

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

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В таблице contacts, поле [active] получило возможность взаимодействия с ним через элемент управления Checkbox,во многих случаях это удобно, хотя в программе за ним скрывается символ 1 или 0, в зависимости от наличия или отсутствия “галочки”.  Мы бы могли удалять записи неактивных контактов, но удалять какие-либо записи в базах данных нужно с особой осторожностью, как правило записи особым образом отмечаются или переносятся, и при необходимости к ним всегда можно вернуться.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Теперь обратим внимание на поля [phone1] и [phone2]. Исходя из опыта мы предположили, что у человека может быть более одного телефонного номера и создали два поля под эти цели, но а если у человека три телефонных номера и даже четыре? Логично предположить и создать под эти цели максимальное количество полей (помним, что вносить все номера в одно поле через запятую противоречит принципу минимальной неделимости), допустим создадим десять полей для хранения десяти телефонных номеров. И делать мы этого не будем по причине того, что система управления базами данных резервирует память под хранение данных и даже при наличии одного человека с десятью телефонными номерами большое количество пустых мест (рисунок ниже) будет замедлять работу нашей базы, когда она начнет разрастаться данными.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Создадим таблицу phones.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В ней же создадим ключевое поле [id] с типом данных Счетчик, поле [userid] – тип данных Числовой и [phone] – тип данных Текстовый. Поле [userid] является внешним ключевым полем, сюда мы будем записывать значение поля [id](которое соответствует конкретному человеку) из таблицы contacts и его номер телефона, столько раз сколько номеров телефонов у него есть.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перенесем номера телефонов из таблицы contacts в таблицу phones и удалим поля [phone1] и [phone2].

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

На панели инструментов откроем вкладку Работа с базами данных и вызовем Схему данных. В конструкторе Схемы данных вызовем Отобразить таблицу и выберем из списка таблиц таблицу contacts и phone. Мы видим модели наших таблиц с соответствующими полями.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Наведем курсор мыши на поле [id] таблицы contacts, нажмем на него левой кнопкой мыши и не отпуская перенесем на поле [userid] таблицы phones. В появившемся диалоговом окне отметим пункт Обеспечение целостности данных (в таблице phones мы не сможем записать номер телефона для несуществующего контакта) и применим изменения.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Теперь наши таблицы связаны отношением – Один ко многим, это значит, что один человек из таблицы contacts может иметь много телефонных номеров в таблице phones. Таким образом наша таблица будет расти вниз, а не в ширь, как это предполагалось у нас изначально.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Откроем форму contacts из панели объектов базы. Теперь наши поля формы [phone1] и [phone2] ссылаются на несуществующие поля таблицы contacts, все верно, мы их удалили.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Откроем форму contacts в режиме Конструктора уже знакомым для нас способом. Здесь мы имеем возможность в графическом режиме изменять размеры и расположение наших полей, а так же менять их свойства, и много чего другого. Выделим область расположения “битых” полей и удалим их.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Реализуем возможность ввода нескольких телефонов для одного контакта. В режиме конструктора формы на верхней панели инструментов, из раздела Элементы управления мы можем добавлять элементы привычные нам по работе с большинством программ, имеющих графический интерфейс (кнопки, выпадающие списки, чекбоксы, радиокнопки, списки и т. п.). Выберем элемент управления Подчиненная форма/отчет (считается, что это неудачный перевод локализации MS Access, логичнее  этот элемент управления звучал бы как Подчиненная таблица). На рабочем поле формы курсор мыши изменит свой вид, выделим произвольную область на свободном месте и вставим элемент управления, в дальнейшем мы сможем отредактировать его размер в удобный для работы.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В появившемся Мастере подчиненных форм выберем источником подчиненных данных Имеющиеся таблицы и запросы, далее во втором окне из выпадающего списка таблиц выберем таблицу phones, из левого списка полей таблицы phones выберем поле [phone] и переместим его в правый список соответствующей кнопкой.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Третий этап диалога предлагает нам связать подчиненные данные с таблицей contacts, если же мы выберем <отсутствие> такой связи, в подчиненной таблице, мы просто будем видеть полный список телефонов всех контактов, выберем первый пункт из списка, который соответствует нашей схеме связи, иными словами мы говорим – Показать все телефоны для такого-то контакта. Сохраним работу мастера, сохраним изменения в конструкторе формы.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

На панели инструментов, в подразделе Сервис нажмем Добавить поля и перетащим поле [active] на макет формы. Сохраним изменения и выйдем из режима конструктора.

Приводим данные в порядок с помощью Microsoft Access (часть 2) Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Теперь на форме contacts, в окне подчиненной таблицы,  перемещаясь по записям контактов сможем видеть и добавлять необходимое количество телефонов для конкретного контакта, все добавления будут записываться в таблицу phones. Добавим новый телефон для первого контакта и в таблице phones появится еще один телефон, заметьте поле [userid] таблицы phones заполняется автоматически соответствующим [id] (которое идентифицирует конкретного пользователя) из таблицы contacts. Также у нас есть возможность изменять “галочкой” активность контакта и эти изменения тоже будут отражаться в таблице contacts.

Показать полностью 15
106

Приводим данные в порядок с помощью Microsoft Access

А что если бы была такая программа, где бы мы централизованно и структурированно хранили наши однотипные данные и при необходимости вставляли их в типовые шаблоны документов? Есть такая программа и это система управления базами данных (СУБД) Microsoft Access из пакета Microsoft Office. Простыми словами это программа которая хранит ваши данные в таблицах, в удобном для последующей работы виде. В отличии от Excel в базах данных более строгие условия по структуре данных и работе с ними, что дает преимущества при их использовании. Ну не думает же вы, что ваш банковский счет ведется в Excel.


Если ваш пакет офиса не включает программу MS Access придется ее доустановить.

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

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


_____________________________________________________________________________________________________

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

_____________________________________________________________________________________________________

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Главное окно встречает нас шаблоном таблицы, которую мы должны доработать под себя. Интерфейс программы и элементs управления привычны для пользователей MS Office

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

С таблицей мы можем работать в режиме “Таблица” и “Конструктор”

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перейдем в режим “Конструктор”, при этом Access попросит нас задать имя таблицы. Помним, что такие вещи лучше именовать латиницей и без пробелов. Назовем нашу таблицу – contacts. Правилом хорошего тона является именование таблиц именем, которое явно отражает то, что в них хранится.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В реляционных базах данных приняты следующие правила и стандарты:

-колонки таблиц называются полями, каждое поле должно иметь уникальное имя, это нужно для последующей работы с базой, чтобы программа однозначно понимала что вы от нее хотите


-поле содержит отдельную сущность (характеристику) описываемого объекта - [фамилия] [имя] [дата_рождения] [телефон] [адрес_эл_почты]


-строки таблиц называются записями, хотя и строкой их называть допустимо


-поля должны быть атомарными (неделимыми), то есть – фамилия, имя и отчество должны быть в разных полях


-каждое поле имеет только один тип данных (текст, дата, число)


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

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перейдем в режим конструктора таблиц. Здесь мы зададим имена нашим полям и типы данных для них. Как мы видим одно поле уже существует и это ключевое поле. Таблица вообще может состоять только из этого поля, но без ключевого поля конструктор даже не даст сохранить таблицу.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Как уже было сказано – поле имеет Тип данных. Его мы выбираем в зависимости от того, какими данными мы будем характеризовать наши сущности. Для поля – [фамилия] мы явно выберем текст, для поля [дата_рождения] мы явно выберем дату/время. И если для поля - [фамилия] мы выберем число, то при заполнении таблицы программа не даст нам записать текст, а только числовое значение, а нам этого не надо, значит правильно выбираем типы данных.

Тип данных – Счетчик, будет сам заполнять ключевое поле уникальными значения начиная с 1 и т. д. Access не даст возможности редактировать это поле, зато все записи таблицы будут уникальными.
Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Создадим поля нашего справочника контактов:

[id] – тип данных Счетчик (ключевое поле)

[name] – тип данных Текстовый

[surname] – тип данных Текстовый

[email] – тип данных Текстовый

[phone1] – тип данных Текстовый

[phone2] – тип данных Текстовый

[regdate] – тип данных Дата/время

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

При выборе типа данных, в нижней части окна конструктора мы можем настроить дополнительные свойства поля. Например, мы можем вставлять текущую дату в поле [regdate] (дата регистрации) при создании записи в таблице contacts. При нажатии на кнопку свойства – “Значение по умолчанию” откроется Построитель выражений.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Выберем из встроенных функций Даты и времени функцию Date(). Сохраним изменения в Построителе выражений и конструкторе таблиц и перейдем в режим заполнения таблицы.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Наша таблица готова к заполнению данными.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Заполним таблицу вымышленными персонажами. Поле [id] и [regdate] заполняются автоматически.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Создадим для нашей таблицы форму для заполнения. На вкладке Создание вызовем Мастер форм и в диалоговом окне мастера выберем те поля, которые нам понадобятся на форме, выберем все кроме полей [id] и [regdate], они у нас заполняются автоматически. Жмем далее и соглашаемся на предложенные мастером значения по умолчанию.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Наша форма готова, на ней только те поля которые нам нужны. Слева в навигаторе объектов у нас появился новый объект – форма contacts.  Внизу окна видим панель навигации по записям. На этой же панели нажмем Добавить новую запись и введем еще одного выдуманного персонажа.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

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

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Перейдем в нашу таблицу и увидим добавление новой записи.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

В процессе накопления нашей базы нам потребуется передавать данные для работы другим пользователям. На в кладке Внешние данные в разделе Экспорт нажмем на пиктограмму с логотипом Excel. Укажем путь для сохранения файла электронной таблицы и отметим 1 и 2 пункты меню.

Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост

Теперь мы можем работать с этим файлом удобным для нас способом, а наши данные надежно хранятся в базе данных. Это лишь знакомство с системой Access.

Access хорошо взаимодействует с программа из MS Office, имеет много встроенных средств по работе с данными, а с помощью встроенного языка программирования VBA можно расширять функционал работы.
Приводим данные в порядок с помощью Microsoft Access Microsoft office, Microsoft Access, Windows, База данных, Компьютер, Длиннопост
Показать полностью 19
Отличная работа, все прочитано!