Запросы

Формы

Работа с таблицами

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

  • использование мастера баз данныхдля создания всей базы данных, содержащей все требуемые отчеты, таблицы и формы, за одну операцию. Мастер баз данных создает новую базу данных, его нельзя использовать для добавления новых таблиц, форм, отчетов в уже существующую базу данных;
  • мастер таблицпозволяет выбрать поля для данной таблицы из множества определенных ранее таблиц, таких, как деловые контакты, список личного имущества или рецепты;
  • ввод данныхнепосредственно в пустую таблицу в режиме таблицы. При сохранении новой таблицы в Access данные анализируются, и каждому полю присваивается необходимый тип данных и формат;
  • определение всех параметров макета таблицы в режиме конструктора (основной)

Режим конструктора таблиц

Типы полей Access:

Тип данных Описание
Текстовый (Значение по умолчанию) Текст или числа, не требующие проведения расчетов, например номера телефонов (до 255 знаков)  
Числовой Числовые данные различных форматов, используемые для проведения расчетов
Дата/время Для хранения информации о дате и времени с 100 по 9999 год включительно
Денежный Денежные значения и числовые данные, используемые в математических расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков в дробной части
Поле MEMO Для хранения комментариев; до 65535 символов
Счетчик Специальное числовое поле, в котором Access автоматически присваивает уникальный порядковый номер каждой записи. Значения полей типа счетчика обновлять нельзя
Логический Может иметь только одно из двух возможных значений (True/False, Да/Нет)
Поле объекта OLE Объект (например, электронная таблица Microsoft Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу Access
Гиперссылка Строка, состоящая из букв и цифр и представляющая адрес гиперссылки. Адрес гиперссылки может состоять максимум из трех частей: текст, выводимый в поле или в элементе управления; путь к файлу (в формате пути UNC) или к странице (адрес URL). Чтобы вставить адрес гиперссылки в поле или в элемент управления, выполните команду Вставка, Гиперссылка
Мастер подстановок Создает поле, в котором предлагается выбор значений из списка или из поля со списком, содержащего набор постоянных значений или значений из другой таблицы. Это в действительности не тип поля, а способ хранения поля

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

Свойства текстовых полей:

Размер поля – максимально допустимое количество символов ввода;

Подпись – заголовок поля в форме; по умолчанию – имя поля;

Значение по умолчанию – значение, автоматически подставляемое в поле при создании записи;

Индексированное поле – определяет, создается ли ключ для быстрого поиска и сортировки данных по данному полю; «да» для наиболее часто используемых полей;

Свойства числовых полей:

Размер поля – указывается как выбор одного из целых типов: целое – 2 байта, +-32000, длинное целое – 4 байта, +- 2 млрд., с плавающей точкой – вещественные числа, в этом случае можно указать число десятичных знаков.

Свойства полей типа дата/время:

Формат поля – выбор способа представления даты и/или времени

Для всех типов полей (кроме типов Счетчик и поле объекта OLE) можно самостоятельно задавать ограничения для вводимых данных. Для этого в режиме конструктора надо выбрать вкладку Общие, перевести курсор в поле с именем "Условия на значение" и ввести ограничение на данные. Например, стаж работы вряд ли может быть более 70 лет, и ограничение будет следующее: <70. Ограничение можно вводить и на текстовое поле, Обычно в этом случае задаются слова, которые могут присутствовать в данном поле.

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

Для каждого типа данных (кроме типа данных Счетчик) предусмотрено пустое (нулевое) значение. Различают два типа пустых значений: пустые (Null) значения и пустые строки, Если пустое поле имеет пустое (Null) значение, то это означает, что данные для него существуют, но пока не известны. Если же введена пустая строка (два знака прямых кавычек ("")), то это означает, что данные не существуют вовсе. Access позволяет обрабатывать такие пустые значения.

Режим таблицы

В этом режиме выполняется ввод и редактирование данных. Переход в него – кнопка «Открыть» в окне БД или кнопка Вид на панели инструментов.

Операции над записями и полями – контекстное меню строки или столбца.

Редактирование ячейки – двойной щелчок или F2 для исправления данных, Enter – подтверждение изменений, Esc – отмена.

Поиск и замена данных: меню Правка, п. Найти, Заменить или контекстное меню столбца данных;

Сортировка данных: меню Записи, подменю Сортировка или контекстное меню столбца данных; Можно перед сортировкой выделить несколько столбцов; тогда она начинается с крайнего левого столбца.

Современные СУБД никогда не сортируют таблицы физически. Средства сортировки данных (а также фильтрации, поиска и замены) реализованы как автоматически создаваемые запросы. Записи всегда располагаются в файле в том порядке, в котором они были добавлены в таблицу.

Фильтрация данных: Фильтр - это набор условий, применяемых для отбора подмножества записей. В Access существуют фильтры четырех типов:

Фильтр по выделенному фрагменту - способ быстрого отбора записей по выделенному образцу. Выделить образец, в контекстом меню выбрать соотв. пункт. Снятие фильтра – меню Записи, п. Удалить фильтр. Действие последовательно наложенных фильтров объединяется.

Обычный фильтр – меню Записи.Фильтр.Изменить фильтр. После нажатия кнопки от таблицы остается одна запись. Каждое поле становится списком, в котором можно выбрать выводимые значения для данного поля. После щелчка по кнопке «Применить фильтр» будут выбраны записи, соответствующие измененному фильтру.

Расширенный фильтр – фильтр создается как SQL-запрос в окне фильтра, аналогичному окну запроса. Условие отбора можно построить, пользуясь построителем выражений.

 

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

При вводе данных можно не только помещать вычисляемые поля в форму, но и добавлять расширенные правила проверки корректности ввода и элементы управления (например, переключатели, флажки, раскрывающиеся списки). Линии, рамки, цвета и фоновые изображения улучшают внешний вид данных, облегчают восприятие формы и повышают продуктивность работы. В дополнение к этому OLE-объекгы (такие, как рисунки и графики) можно увидеть только в форме или в отчете.

Создать форму можно несколькими способами. Если Вы в окне базы данных откроете вкладку Формы и щелкните по кнопке «Создать», то откроется окно, в котором указаны способы создания формы.

Конструктор позволит вам создать форму самостоятельно. Мастер форм дает возможность автоматически создать форму на основе выбранных полей. Access в режиме диалога выясняет у пользователя, какую форму он хочет получить, и создает ее автоматически. Если вас в этой форме что-либо не удовлетворяет, вы можете исправить это в режиме конструктора. Автоформы являются частными случаями мастера форм, т.е. они автоматически создают заданные виды форм практически без участия пользователя. Диаграмма создает форму со встроенной диаграммой, а сводная таблица - со сводной таблицей Excel.

Далее будет рассмотрена работа с конструктором форм. По терминологии Access все, что добавляется в форму, называют элементами управления. Различают 2 их вида: связанные и несвязанные. Связанные элементы используют данные из полей в таблице БД. Например, если поле содержит сведения о почтовом индексе, то исправления, внесенные в поле, внесут соответствующие изменения в текущую запись открытой БД. Несвязанные элементы содержат пояснительный текст или графику, они не связаны с полями БД. Для перехода к Конструктору форм откроем вкладку Формы в окне БД и выберем кнопку Создать, в окне Новая форма укажем таблицу-источник данных и выберем режим Конструктор.

В области данных создаются и настраиваются необходимые поля, ее размер легко изменить «мышью». Настроить внешний вид формы позволяет команда Формат.Автоформат. Подробно изучить отдельные настройки формы и области данных позволяет окно Свойства, вызвать которое для области данных можно щелчком правой кнопки «мыши» в любом ее месте. Окно Свойства формы доступно, если выполнить щелчок правой кнопкой в окне Конструктора формы внеобласти данных:

Список полей позволяет методом «перетащил и оставил» быстро добавить на форму элементы для ввода данных в поля таблицы-источника записей.

Панель элементов позволяет добавлять в область данных стандартные элементы интерфейса Windows. Рассмотрим важнейшие из них подробнее. В связи с тем, что при программировании в Access на языке Visual Basic for Applications нам придется обращаться к англоязычным именам элементов управления и их свойств, везде в скобках будем писать соответствующие английские аналоги.

Текстовая метка (Label) – предназначена для ввода заголовков, поясняющего текста и примечаний. Это несвязанный элемент. Основные свойства: Имя (Name) – название метки, Подпись (Caption) – текст, выведенный на метке.

Текстовое поле (TextBox) – предназначено для вывода информации из полей БД, это связанный элемент. Свойства: Данные (ControlSource) – определяет, какие данные отображаются в поле. Данные могут быть получены из таблицы или запроса, удобнее всего назначить источник данных из построителя выражений, нажав кнопку с многоточием справа от свойства Данные. Ручной ввод также несложен. Например, если в поле выводится поле ФИО из таблицы Сотрудники, в поле ввода Данные следует набрать = [Сотрудники]![ФИО]

Поле со списком (ComboBox) – после перетаскивания объекта на форму вызывается Мастер. Поле со списком может использовать данные из таблицы или запроса, либо вводится фиксированный набор значений для поля. Значение, выбранное из поля со списком, можно запоминать в переменной или в поле таблицы БД.

Список (ListBox), в отличие от поля со списком, позволяет лишь выбрать одно из заранее предусмотренных значений. Выбор из списка позволяет быть уверенным, что введенное значение является допустимым. После добавления объекта на форму вызывается Мастер, аналогичный Мастеру создания поля со списком.

Кнопка (Button) также создается с помощью Мастера.

 

Набор вкладок () – вкладки позволяют разместить в одном окне формы несколько наборов интерфейсных элементов.

 

Для выравнивания элементов формы достаточно выделить их «мышью» при нажатой Shift, а затем из контекстного меню выбрать подменю Выровнять. Аналогично можно выровнять размеры интерфейсных элементов, установить цвета текста и фона, изменить стиль оформления.

Подчиненная форма/отчет

 

Запрос на выборку используется наиболее часто. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или из нескольких таблиц и выводятся в определенном порядке. Например, можно вывести на экран данные о фамилиях сотрудников, стаж которых более 15 лет (на основе таблицы Сотрудники).

Примечание. Простые запросы на выборку практически не отличаются от фильтров. Более того, фильтры можно сохранять как запросы.

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

Для создания нового запросанадо в окне базы данных выбрать вкладку Запросы и щелкнуть по кнопке «Создать». Откроется окно "Новый запрос".

Конструктор позволит вам самостоятельно создать любой тип запроса.

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

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

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

Ряд запросов нельзя создать непосредственно из окна Новый запрос:

Запрос с параметрами - это запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, на основе которых будет выполняться запрос.

Запросом на изменениеназывают запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.

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

· На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

· На добавление записей. Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».

  • На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи.

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

Задание параметров производится в строке Условия отбора для соответствующих полей. Например, для того, чтобы Access предложил набрать фамилию в окне диалога, достаточно в строке параметра Условия отбора для поля "ФИО" ввести фразу (скобки тоже вводить): [Введите фамилию сотрудника]

Примеры выражений в условиях отбора:

Поле Выражение Описание  
ПунктНазначения "Киев" Отображает заказы на доставку товаров в Киев.  
ПунктНазначения "Киев" Or "Минск" Использует оператор Or для отображения заказов на доставку товаров в Киев или Минск.  
ДатаОтгрузки Between #05.01.95# And #10.01.95# Использует оператор Between...And для отображения заказов на отгрузку товаров не ранее 5-янв-95 и не позднее 10-янв-95.  
ДатаОтгрузки #2/2/95# Отображает заказы на отгрузку товаров 2-фев-95.  
СтранаДоставки In("Канада", "Великобритания") Использует оператор In для отображения заказов на доставку товаров в Канаду или Великобританию.  
СтранаДоставки Not "США" Использует оператор Not для отображения заказов на доставку товаров во все страны, за исключением США.  
ИмяКлиента Like "С*" Заказы на доставку товаров клиентам, имена которых начинаются с буквы С.  
Название >="Н" Отображает заказы на доставку товаров в фирмы, названия которых начинаются с букв, находящихся в диапазоне от Н до Я.  
КодЗаказа Right([OrderID], 2)="99" Использует функцию Right для отображения заказов, код которых заканчивается на 99.  
Название Len([Название]) >Val(30) Использует функции Len и Val для отображения заказов для фирм, названия которых состоят из более чем 30 символов.  
  Поле Выражение Описание
  ДатаИсполнения Between Date( ) And DateAdd("m", 3, Date( )) Использует оператор Between...And и функции DateAdd и Date для отображения заказов, требующих исполнения в течение трех месяцев, начиная с сегодняшней даты включительно.
  ДатаЗаказа < Date( )- 30 Использует функцию Date для отображения заказов, сделанных ранее, чем 30 дней назад.
  ДатаЗаказа Year([ДатаЗаказа])=1996 Использует функцию Year для отображения заказов, сделанных в 1996 году.
  ДатаЗаказа DatePart("q", [ДатаЗаказа])=4 Использует функцию DatePart для отображения заказов на четвертый квартал.
  ДатаЗаказа DateSerial(Year ([ДатаЗаказа]), Month([ДатаЗаказа])+1, 1)-1 Использует функции DateSerial, Year и Month для отображения заказов на последний день каждого месяца.
  ДатаЗаказа Year([ДатаЗаказа])= Year(Now()) And Month([ДатаЗаказа])= Month(Now()) Использует функции Year и Month, а также оператор And для отображения заказов текущего года и месяца.
             

 

Пустые значения

Поле Выражение Описание
ОбластьДоставки Is Null Отображает заказы для клиентов, у которых поле «ОбластьДоставки» является пустым.
ОбластьДоставки Is Not Null Отображает заказы для клиентов, у которых поле «РайонДоставки» содержит какое-либо значение.
Факс " " Отображает заказы для клиентов, у которых нет факсимильного аппарата, то есть для тех клиентов, у которых поле «Факс» содержит пустую строку, а не значение Null.

Часть значения поля

Поле Выражение Отображает
ИмяКлиента Like "С*" Выполненные заказы для клиентов, имена которых начинаются с буквы С.
ИмяКлиента Like "*Импорт" Выполненные заказы для клиентов, имена которых заканчиваются на слово «Импорт».
ИмяКлиента Like "[А-Д]*" Выполненные заказы для клиентов, имена которых начинаются с букв от А до Д.
ИмяКлиента Like "*тр*" Выполненные заказы для клиентов, имена которых содержат сочетание букв «тр».
ИмяКлиента Like "Дом мод?" Выполненные заказы для клиентов, у которых имя начинается со слова «Дом», а второе слово в имени содержит четыре буквы, причем первые три из них «мод», а четвертая неизвестна.

 

Для доступа к запросам на изменение надо открыть пункт меню Запрос - в открывшемся списке вы увидите все виды запросов на изменение.

 

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

· на физическом носителе информации (обычно это жесткий диск) требуется меньший объем пространства;

· запрос может использовать обновленные версии любых записей, измененных со времени последнего запуска запроса.

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