Создание структуры таблицы Товары По аналогии с созданием таблицы Поставщики откройте новое окно конструктора для определения структуры таблицы Товары. В этой таблице будут содержаться сведения о товарах: Марка, Цена, Поставщик. Начнем определять поля таблицы Товары.
1. Ключевое поле
По аналогии введите специальное поле КодТовара, для чего установите курсор в первую строку столбца Имя поля и введите КодТовара. В столбце Тип данных выберите в списке значение Счетчик.
Определите сразу же ключевое поле. Для этого пометьте поле КодТовара специальным значком ключ в поле выделения в левой части окна по аналогии с предыдущей таблицей.
2. Марка товара
Установите курсор в столбец Имя поля на вторую строку и введите название следующего поля: Товар. В столбце Тип данных выберите в списке значение Текстовый.
3. Цена товара
Установите курсор в столбец Имя поля на третью строку и введите название следующего поля: Цена. В столбце Тип данных выберите в списке значение Денежный.
Свойство Формат поля установите Денежный, а свойство Число десятичных знаков равным 2.
3. Поставщик товара
Теперь нам необходимо указать поставщика данного товара. Так как все сведения обо всех поставщиках хранятся в отдельной специальной таблице Поставщики, то нет необходимости дублировать их заново в таблице Товары. Наша задача – сослаться на конкретного поставщика, указав в таблице Товары его уникальный код – КодПоставщика. Теперь вместо поля Поставщик мы вводим поле КодПоставщика и заполняем его значениями соответствующих кодов, взятых из таблицы Поставщики. Таким образом, мы связываем две таблицы, объединяя их для получения более полной информации. Однако для связывания таблиц большое значение имеет понятие соответствие данных: чтобы связать две таблицы, объ-единяемые поля должны иметь соответствующие типы данных. В связи с особенностями типа Счетчик возникают сложности. Поскольку значения поля типа Счетчик присваивается автоматически, вы не можете создать связь, объединяющую два поля типа Счетчик. Если бы это было возможно, Access пытался бы присвоить каждому из полей свое значение, что вызвало бы нескончаемый конфликт. Для разрешения данного противоречия следует использовать соответствующий (но необязательно одинаковый!) тип данных. Единственный тип данных, соответствующий типу Счетчик – Числовой, размером Длинное целое.
Установите курсор в столбец Имя поля на четвертую строку и введите название следующего поля: КодПоставщика. В столбце Тип данных выберите в списке значение Числовой.
Свойство Размер поля установите Длинное целое и введите значение свойства Подпись – Поставщик.
Для облегчения заполнения поля КодПоставщика следует воспользоваться Столбцом постановки, который позволяет при вводе данных выбирать в списке не коды, а кодируемые значения, а при отображении тоже показываются не коды, а кодируемые значения.
Однако прежде, чем запускать Мастер подстановок, следует сохранить таблицу, нажав на панели инструментов кнопку Сохранить. В окне Сохранить как в поле имя таблицы введите имя создаваемой таблицы Товары и нажмите кнопку ОК.
Вернемся к подстановке для поля КодПоставщика. Для этого в столбце Тип данных поля КодПоставщика выберите в списке значений Мастер подстановок как показано на рисунке 79.
Рисунок 79 – Вызов мастера подстановки
В диалоговом окне Мастер подстановок по умолчанию установлен переключатель Объект «столбец подстановки» будет использовать значения из таблицы или запроса (рис. 80).
Рисунок 80 – Создание столбца подстановки
Это именно то, что нам нужно, т.к. в данном случае мы должны использовать данные из таблицы Поставщики. Нажмите кнопку .
Выделите на следующем шаге таблицу, из которой вы будете использовать данные. В нашем примере выбор показан на рисунке 81. Нажмите кнопку .
Рисунок 81 – Выбор источника
В списке Доступные поля выводятся все поля таблицы Поставщики. Переместите те поля, которые вы хотите выбирать при вводе и последующем отображении. В данном случае следует выделить поле Название и нажать кнопку с одинарной стрелкой . Поле Название переместится в область Выбранные поля, как показано на рисунке 82, затем нажмите кнопку .
Рисунок 82 – Выбранные поля столбца подстановок
На следующем шаге выберите порядок сортировки значений в столбце подстановок. Установите его, как показано на рисунке 83, и нажмите кнопку .
Рисунок 83 – Сортировка значений в столбце подстановок
Теперь столбец подстановки, представленный на рисунке 84, виден так, как он будет отображаться в раскрывающемся списке.
Столбец КодПоставщика скрыт, так как по умолчанию установлен флажок Скрыть ключевой столбец. Ширину столбца можно отрегулировать, перемещая мышью границы столбцов. Установив нужную ширину столбцов, нажмите кнопку .
Рисунок 84 – Задание ширины столбца подстановки
В последнем диалоговом окне нажмите кнопку . После этого Access автоматически создает связь между таблицами Поставщики и Товары.
Ответьте утвердительно на вопрос о сохранении таблицы и раскройте вкладку подстановка в нижней части окна конструктора, как показано на рисунке 85.
Рисунок 85 – Свойства поля подстановки в окне конструктора таблиц
Эта вкладка содержит список свойств, которые определяют столбец подстановки:
- Тип элемента управления – определяет вид поля: обычное поле, список или поле со списком. В данном случае это Поле со списком.
- Тип источника строк – может принимать три значения: Таблица или запрос, Список значений и Список полей. В данном случае источником строк для поля подстановки будет Таблица или запрос.
- Источник строк – определяет источник данных, который в данном случае представляет собой инструкцию языка SQL, отбирающую записи из таблицы Поставщики.
- Присоединенный столбец – определяет номер столбца в раскрывающемся списке, значение из которого должно записываться в поле подстановки. В нашем случае это первый столбец, содержащий КодПоставщика. Вводим значение 1.
- Число столбцов – определяет число выводимых столбцов в раскрывающемся списке. В нашем примере их 2 – КодПоставщика и Название.
- Заглавия столбцов – определяет, будут ли выводиться заглавия столбцов.
- Ширина столбцов – определяет ширину столбцов списка. Обратите внимание, что для первого столбца указана ширина 0 см – именно поэтому он и не будет отображаться, а для второго – 3,969.
- Число строк списка – определяет максимальное число строк в списке (8). Если количество элементов списка превысит указанное число строк, в списке появляется полоса прокрутки.
- Ширина списка – определяет ширину раскрывающегося списка (3,969).
- Ограничиться списком – определяет, могут ли вводиться в поле значения, не являющиеся элементами списка. В нашем случае для обеспечения целостности и непротиворечивости данных мы ограничиваемся справочником, поэтому устанавливаем Да.
Закройте таблицу Товары. Теперь, когда таблицы созданы, нужно установить связи между ними.
Связывание таблиц
Связи между таблицами создаются, удаляются и наглядно изображаются в окне Схема данных. Чтобы открыть окно схемы данных, выполните команду СервисСхема данных или нажмите кнопку на панели инструментов. Откроется окно Схема данных в виде списков полей каждой таблицы. Между этими таблицами установлена связь «один-ко-многим», созданная мастером подстановок. Связь изображается линией, соединяющей таблицы (рис. 86).
Рисунок 86 – Схема данных после работы мастера подстановок
Линия соединяет поля КодПоставщика обеих таблиц. Вам осталось лишь настроить эту связь.
Щелкните дважды левой кнопкой мыши на линии, соединяющей таблицы. Появится диалоговое окно Изменение связей. В первой строке таблицы отображаются связанные поля. Установите флажки Обеспечение целостности данных, Каскадное обновление связанных полей, как показано на рисунке 87.
Рисунок 87 – Настройка связей в окне Схема данных
Нажмите кнопку ОК (окно Изменение связей закроется). В окне Схема данных на линии, соединяющей две таблицы, появится на стороне «один» значок 1, а на стороне «многие» – ¥ (рис. 88).
Рисунок 88 – Настроенные связи в окне Схема данных
На схеме данных все таблицы легко перемещаются мышью, если схватить заголовок и потянуть. Размеры таблиц также можно менять стандартным образом, потянув за границу.
Ввод данных
Существует несколько способов ввода данных в таблицы:
- ввод записей в режиме таблицы;
- ввод данных с помощью форм;
- копирование данных из других таблиц;
- импорт данных из внешних файлов;
- присоединение внешних таблиц.
Режим таблицы обеспечивает простой и быстрый способ ввода данных в таблицу, однако он удобен только в случае небольших таблиц, когда большинство полей видно на экране и количество записей невелико.
Для освоения работы режима таблицы заполним данными созданные таблицы. Но прежде обратите внимание – таблицы следует заполнять строго по записям (т.е. по строкам таблицы). Для перехода между полями одной записи нажимайте клавишу ТАВ или Enter. Для перехода в начало следующей записи используйте ¯ и затем Home.
Итак, дважды щелкните на таблице Поставщики, чтобы открыть ее в режиме таблицы.
В поле типа Счетчик ввод данных запрещен, поэтому перейдите в следующее поле, нажав клавишу ТАВ. Введите название поставщика. Если попробовать перейти на следующую строку, например, нажав клавишу ¯, то на экране появится сообщение: Поле Поставщики. Название не может содержать значение Null, так как свойство обязательное поле этого поля имеет значение Да. Введите значение в это поле. Это отработала одна из проверок правильности ввода записи в таблицу, так как именно при переходе на следующую запись Access выполняет сохранение записи в таблице. Введите значение в поле Название.
При переходе на следующее поле Номер телефона появится маска ввода, заданная для поля Телефон, как показано на рисунке 89.
Рисунок 89 – Ввод данных о поставщиках в режиме таблицы
Введите цифры в те позиции, которые обозначены символом подчеркивания в поле Телефон.
Закончив ввод записи, перейдите на следующую строку. Если вы вводили данные в последнее поле записи, для этого достаточно тоже нажать клавишу ТАВ. Именно при этом переходе произойдет сохранение записи в базе данных. Таким образом, мы проверили, как работают механизмы, заданные при определении структуры таблицы.
Закройте таблицу Поставщики, щелкнув на кнопке ´, и откройте таблицу Товары.
Аналогично, минуя поле Счетчик, заполните поля Товар и Цена. При заполнении поля Цена введите запятую для разделителя десятичных знаков; ‘р.’ или ‘руб.‘ вводить не следует, так как Access припишет их автоматически ввиду того, что для этого поля установлен тип Денежный.
Для следующего поля у нас определен столбец подстановок, поэтому, как только курсор попадает в это поле, справа появляется кнопка со стрелкой. Нажмите ее и в раскрывшемся списке поставщиков выберите нужного, как показано на рисунке 90. Выбранное значение отображается в поле Поставщик, а в области выделения записи слева появился значок (карандаш), который означает, что запись редактируется. Одновременно появилось значение в поле КодПоставщика – это отработал счетчик.
Рисунок 90 – Ввод данных о товарах в режиме таблицы
Обратите внимание, что в нашем случае раскрывшийся список содержит только одного поставщика. Это связано с тем, что на данном этапе таблица Поставщики содержит только одну запись. Для того чтобы продолжить ввод данных в таблицу Товары необходимо, прежде всего, полностью заполнить все таблицы, связанные на стороне отношения «один», в нашем примере это таблица Поставщики.
Редактирование записи
Чтобы отредактировать существующую запись, достаточно поместить указатель на поле, данные в котором необходимо изменить, ввести новые данные и нажать клавишу ТАВ для перехода на следующее поле. Окончательно данные в записи будут изменены только после перехода на следующую или любую другую запись. До тех пор, пока работа выполняется над одной записью, все изменения можно отменить, нажав клавишу Esc.
Удаление записи
Чтобы удалить записи, нужно сначала выделить их, а затем нажать клавишу Delete. При этом Access запрашивает подтверждение, чтобы предотвратить случайное удаление.
Записи удаляются без труда из тех таблиц, которые не имеют еще связанных записей в подчиненных таблицах. Например, можно удалить новую запись из таблицы Товары. Однако, если вы попробуете удалить запись о поставщике в таблице Поставщики, который поставляет хотя бы один товар (имеется запись в таблице Товары), Access не позволит этого сделать. Чтобы удалить записи из главной таблицы, нужно сначала удалить все связанные с ней записи в подчиненной таблице. Если только при определении связи между таблицами не был установлен флажок каскадного удаления записей. Если же флажок каскадного удаления установлен, то удаляться будет запись в главной таблице и все связанные с ней записи в подчиненной таблице.
Поиск и сортировка данных
Для приобретения навыков по данному разделу вам понадобится открыть файл Борей.mdb, находящийся
C:\Programs Files\Microsoft Office\Office\Samples\Борей.mdb
Сортировка
Откройте таблицу Поставщики в режиме таблицы. Щелкните на любой строке поля Название и нажмите кнопку Сортировка по возрастанию на панели инструментов. Таблица будет отсортирована по поставщикам в порядке алфавита, причем сначала следуют английские названия, а затем все русские.
Щелкните на любой строке столбца Индекс и нажмите кнопку Сортировка по возрастанию . Не удивляйтесь полученному результату. Числовые индексы были отсортированы как строки символов, потому что данному полю приписан тип Текстовый.
Закройте таблицу Поставщики и откройте таблицу Товары. Щелкните на любой строке поля Цена и нажмите кнопку Сортировка по убыванию . Все записи в таблице выстроились в порядке убывания цены товара.
Поиск записи
Например, в таблице Сотрудники в поле Должность найти и заменить Представитель на Специалист.
Откройте таблицу Сотрудники и щелкните в любой строке столбца Должность. Нажмите на панели инструментов кнопку Найти и в появившемся диалоговом окне (рис. 91) Поиск и замена на вкладке Поиск в поле Образец введите значение, которое вы хотите найти, в нашем примере – Представитель.
Рисунок 91 – Окно диалога Поиск и замена
Остальные поля на этой вкладке позволяют определить различные типы поиска. Затем раскройте вкладку Замена (она аналогична вкладке Поиск) и введите в поле Заменить на: новое значение Специалист и нажмите кнопку . В результате найденное значение будет заменено и сразу же выделяется следующее значение. При необходимости заменить все вхождения найденной строки в записях таблицы нужно нажать кнопку . Закройте диалоговое окно Поиск и замена.
Фильтрация записей
Предположим, что нам необходима информация о заказах, оформленных одним сотрудником, например, Дарьей Вороновой. Условием отбора будет значение «Воронова, Дарья» поля Сотрудник таблицы Заказы.
Откройте таблицу Заказы в режиме таблицы. Щелкните на любой ячейке поля Сотрудник, содержащей значение «Воронова, Дарья» и нажмите на панели инструментов кнопку Фильтр по выделенному. В результате все записи, имеющие в поле Сотрудник значение «Воронова, Дарья», отобразятся на экране, а остальные будут скрыты. Область управления внизу окна таблицы сообщает, что записи отфильтрованы. Чтобы удалить фильтр, нажмите кнопку Удалить фильтр.
Расширенный фильтр
Данный фильтр является более мощным средством по сравнению с Фильтром по выделенному. В нем вы можете устанавливать критерии И и ИЛИ, а также использовать выражения.
При использовании критерия И необходимо, чтобы выполнялись все заданные условия сравнения. Например, отобразить записи о кондитерских изделиях не дороже 500 рублей.
Откройте таблицу Товары и нажмите на панели инструментов кнопку Изменить фильтр.
Для задания критерия И необходимо, чтобы все условия сравнения размещались в одной и той же строке. Поэтому в открывшемся окне диалога (рис. 92) в поле Тип нажмите кнопку раскрытия списка и выберите значение Кондитерские изделия.
Рисунок 92 – Расширенный фильтр И
Выбранное значение появится в строке ввода. Перейдите в поле Цена и введите <=500. Нажмите кнопку Применение фильтра на панели инструментов. Вы получите требуемые записи.
При использовании критерия ИЛИ необходимо, чтобы выполнялось хотя бы одно из условий сравнения. Например, отобразить данные о кондитерских изделиях и фруктах.
Нажмите на панели инструментов Применение фильтра. Так как появившееся окно уже содержит некоторые записи, нажмите на панели инструментов кнопку Очистить бланк. Все условие отбора, которые могли остаться от предыдущего фильтра, будут удалены.
Выберите вкладку в нижней части окна. В поле Тип щелкните на стрелке вниз и выберите значение «Кондитерские изделия». В нижней части окна перейдите на вкладку . В поле Тип щелкните на стрелке вниз и выберите значение «Фрукты». Еще одна вкладка была автоматически добавлена на случай добавления еще одного ИЛИ-условия к нашему фильтру (рис. 93). На панели инструментов нажмите кнопку Применение фильтра.
Рисунок 93 – Расширенный фильтр ИЛИ
Печать в режиме таблицы
Для создания простой распечатки таблицы нажмите на панели инструментов кнопку Предварительный просмотр. Появится окно предварительного просмотра, и вы увидите, как будет выглядеть таблица в печатном виде. Настройте ширину столбцов и нажмите кнопку Печать.
Отчет должен содержать: тему и цель работы, задание к работе, структуру таблиц, распечатку таблиц базы данных и печать таблицы, содержащей применение расширенного фильтра.
Запросы на выборку
Способы создания запроса
Запрос есть механизм выбора и представления информации из базы данных. Механизм запросов реализует одно из основных назначений базы данных – быстрый поиск информации и получение ответов на поставленные вопросы. Применяются два типа запросов: запросы по образцу (QBE) и структурированный язык запросов (SQL).
С помощью структурированного языка формируются запросы любой сложности. Запрос составляется из последовательности SQL-инструкций, которые задают, что надо сделать с входным набором данных для генерации выходного набора. Работа с SQL-запросом рассчитана на специалиста-программиста. Пользователю, как правило, не приходится обращаться к языку SQL напрямую.
Запрос по образцу (QBE) – средство для отыскания необходимой информации в базе данных (из одной или нескольких таблиц) обычно путем занесения известных значений в таблицу. Система запросов по образцу выводит данные, имеющие отношения к вводимым. Запрос формируется не на специальном языке, а путем заполнения бланка запросов в окне Конструктора запросов. Указываются критерии выборки записей в исходной таблице. С точки зрения пользователя, конструирование запроса – это просто пометка нужных элементов формы в окне Конструктора запросов.
В таблице 16 представлены некоторые операторы, которые могут быть использованы в условиях отбора запроса.
Таблица 16
|