Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Ввод данных с помощью формы




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

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

Действия, которые можно выполнить с помощью элемента управления, зависят от факторов, указанных ниже.

· Тип данных, заданный для источника данных.

· Свойства, заданные для поля.

· Свойства, заданные для элемента управления.

В приведенных ниже разделах описано применение самых распространенных элементов управления, служащих для ввода данных.

Ввод пустых значений

Если определенные данные отсутствуют или не существуют, можно ввести пустое значение. В Access есть два типа пустых значений: значения NULL и пустые строки. Значения NULL обозначают неизвестные значения, а пустые строки — поля, которые содержат пустое значение. Например, в таблице с полем номера факса это поле можно оставить пустым, если соответствующие сведения отсутствуют; при этом будет введено значение NULL (если структура базы данных допускает значения NULL). Кроме того, в поле можно ввести пустую строку, чтобы показать, что для этого поля нет значения.

1. Чтобы ввести пустую строку, откройте таблицу в режиме таблицы или формы.

2. Выделите нужное поле и введите пару двойных кавычек без пробела между ними ("").

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

Ввод данных с помощью списка

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

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

1. Если список находится в форме, откройте ее в режиме формы, а если список находится в таблице или в результирующем наборе запроса, откройте объект в режиме таблицы.

2. Прокрутите список элементов и выберите из них требуемый.

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

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

Чтобы выделить элементы в поле со списком, щелкните стрелку вниз рядом со списком и выберите данные, которые необходимо добавить.

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

Чтобы выделить элементы в поле со списком с флажками, щелкните стрелку вниз рядом со списком, установите до 100 флажков и нажмите кнопку ОК.

Способы экономии времени при вводе данных

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

ЗАДАНИЕ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ДЛЯ ПОЛЯ ИЛИ ЭЛЕМЕНТА УПРАВЛЕНИЯ

Если во многих записях определенное поле (например, "Город" или "Страна") имеет одно и то же значение, можно ускорить ввод данных, задав значение по умолчанию для элемента управления, связанного с этим полем. При открытии формы или создании записи это значение по умолчанию будет появляться в элементе управления.

ЗАДАНИЕ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ДЛЯ ЭЛЕМЕНТА УПРАВЛЕНИЯ

1. Откройте форму в режиме конструктора.

2. Щелкните правой кнопкой мыши нужный элемент управления и выберите пункт Свойства.

3. На вкладке Данные укажите значение свойства Значение по умолчанию.

4. Чтобы задать другое значение по умолчанию, повторите действия 1-3.

ЗАДАНИЕ ДРУГОГО ЗНАЧЕНИЯ

1. Введите новые данные для значения в поле. Значение по умолчанию всегда можно заменить другим значением.

–или–

Для значения в списке выберите другое значение из списка.

ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ ЗНАЧЕНИЙ ПРИ СОРТИРОВКЕ

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

ПРИМЕЧАНИЕ. В этих действиях предполагается, что форма открыта в режиме формы.

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

2. Нажмите клавиши CTRL+' (апостроф).

Назначение экранных форм

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

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

При работе с экранными формами существует два принципиально разных подхода:

1. Стиль, принятый в системе FoxPro - на главной экранной форме представлена информация одной записи главной таблицы и связанные с ней данные; полный список записей можно увидеть, нажав кнопку Поиск на этой форме.

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

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

 

 

8. В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них является язык QBE (Query-By-Example - запрос по примеру). Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя. Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.

Суть подхода, воплощенного в языке QBE, заключается в следующем. В окне формирования запроса выделяются две зоны. В первой из них высвечивается «скелет» (образ, форма, структура) одной или нескольких таблиц, данные из которых будут участвовать в запросе. В качестве исходных для запроса могут указываться не только базовые таблицы, но и другие запросы.

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

Задание сложных запросов. Допускается задание и простых запросов, включающих только один аргумент поиска, и сложных запросов, компоненты которых связаны операторами AND (И) или OR (ИЛИ). Операторы AND и OR в явном виде не указываются при формулировании запроса на QBE. При отображении запросов на экране используется следующее правило: если в сложном запросе его компоненты представляют разные атрибуты, которые должны быть связаны оператором AND, то они записываются в одной строке. Если компоненты запроса должны быть связаны операторами OR, то они записываются на разных строках.

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

Как указывалось выше, при задании запроса в QBE экран обычно делится на две зоны: зона, в которой указываются данные, исходные для запроса, и зона, в которой описывается ответ. В некоторых реализациях языка при описании отдельных видов запросов появляются дополнительные зоны.

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

Так, в dBase IV таблицы как в зоне «запроса», так в зоне «ответа» представляются в табличном виде, а условия отбора записей указываются в таблицах зоны «запроса». В Access, FoxPro исходные таблицы представлены в анкетной форме (поля таблицы перечисляются один под другим), а в зоне «ответа» в табличной форме отображаются те атрибуты (поля), которые будут выдаваться в ответе. Условия отбора записей задаются в зоне «ответа».

В некоторых случаях при формулировке запроса необходимо использовать так называемые переменные для примера (или «наполнители»). Переменные для примера (example variables) также записываются в определенных графах таблицы, но они обозначают не какое-либо определенное значение, а любое. Конкретное значение наполнителя несущественно. Переменные для примера используются для установления связей между атрибутами в одной или нескольких таблицах.

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

В разных СУБД «наполнители» и обычные значения атрибутов поиска различаются по-разному: в некоторых системах «наполнители» подчеркиваются, в других - используются специальные ограничители при указании переменных в запросе, в третьих - такое понятие вообще не вводится и т.п.

Совместная обработка нескольких таблиц. В некоторых запросах могут потребоваться данные из нескольких таблиц. Например, в базе данных, кроме таблицы KADR, имеется таблица «Выработка» (VRBT) с полями:

· TABN - табельный номер;

· DAT - дата;

· KODDET - код детали;

· KOLV - количество.

В запросе «Выдать информацию о выработке рабочего Евгения Петрова» необходима совместная обработка таблиц VRBT и KADR, так как в таблице «Выработка» нет сведений о фамилиях и именах рабочих.

«Скелеты» всех таблиц, которые нужны для реализации запроса (в нашем примере - двух таблиц), должны быть вызваны на экран.

Дальнейшие действия, которые необходимо выполнить, чтобы осуществить связывание таблиц, будут зависеть от используемой СУБД. Так, в некоторых системах для связывания таблиц используются «наполнители». Их значения могут быть любыми, но они должны быть одинаковыми в обеих связываемых таблицах.

В более поздних версиях СУБД используются визуальные способы установления связей между таблицами: для связывания таблиц нужно мышью позиционироваться на нужном поле в основной таблице и, не отпуская кнопки мыши, переместиться к полю в зависимой таблице. На экране появится линия, связывающая таблицы.

Существуют и другие способы установления связей.

Теоретически возможны разные типы соединений таблиц. Наиболее распространенным является соединение, при котором в результатную таблицу помещаются те соединенные записи, для которых значение поля связи основной таблицы совпадает с соответствующим полем в зависимой таблице. В описанных выше случаях устанавливается именно такое соединение. В настоящее время широко используются такие понятия, как «левое» и «правое» соединение, когда в результатную таблицу помещаются все записи из основной или зависимой таблицы соответственно, даже если для них нет связанных записей в другой таблице. Но не все системы позволяют в QBE реализовывать такие соединения. В случаях, когда возможно задание разных типов соединений, конкретный способ реализации отличается в разных СУБД. Так, в Access «левое» и «правое» соединения можно определить, задав для связи «параметры объединения» или перейдя в SQL. В dBase IV никаких специфических терминов для обозначения такого типа соединений нет, но включение слова Every в запрос на QBE выполняет ту же роль.

Работа с несколькими таблицами в конкретных СУБД различается не только тем, каким способом можно определить связь между таблицами. Так, например, некоторые системы обязывают пользователя связать те таблицы/файлы, которые указываются как исходные для запроса; другие автоматически связывают открытые файлы по тем полям, которые система воспринимает как поля связи (чаще всего это поля, имеющие одинаковые имена, тип и длину); третьи - оставляют эти таблицы изолированными, если пользователь не указал, как они должны быть связаны, четвертые - выполняют декартово произведение открытых таблиц. Например, в dBase IV вызвать несколько файлов БД на панель запросов и не связать их было нельзя. В MS Query, Access если таблицы не связаны, то при выполнении запроса это приводит к связыванию каждой записи одной таблицы с каждой записью другой.

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

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

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

Набор агрегирующих функций может быть различным в разных системах. Обычно во всех реализациях СУБД включены следующие функции: Sum (сумма), Min (минимум), Мах (максимум), Avg (среднее), Count (подсчет). Некоторые системы включают дополнительные статистические функции, такие, как отклонение, стандартное отклонение, дисперсия и др.

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

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

Для удобства восприятия ответа часто требуется определить упорядоченность данных в ответе. Язык QBE обеспечивает такую возможность. Опять-таки возможности задания упорядочения ответа различаются в разных СУБД: некоторые системы разрешают проводить упорядочение по произвольным полям, другие требуют, чтобы поле упорядочения стояло в ответе обязательно первым, а если упорядочение ведется по нескольким полям, то чтобы эти поля следовали в ответе друг за другом в порядке их старшинства; некоторые СУБД различают обычное и словарное упорядочение (когда учитывается и не учитывается регистр соответственно), другие - нет; в некоторых системах, даже если не задано никакое упорядочение, ответ всегда выдается упорядоченным по первому полю таблицы ответа и т.п.

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

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

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

Некоторые языки запросов, которые носят название QBE, построены совсем на других принципах, чем те, что были изложены выше, и было бы хорошо найти для них другое название. Так, например, язык RQBE FoxPro не является табличным двухмерным языком запросов. Он является «построителем» запросов (в том числе SQL). Сложный запрос реализуется в нем просто вводом каждого элементарного условия на отдельной строке. Если две строки не разделены никакой операцией, то считается, что они соединяются операцией «И». Операцию «ИЛИ» нужно указывать явно между соединяемыми строками.

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

 

 

9. Одним из самых распространенных языков запросов является язык SQL (Structure Query Language). Он был разработан в середине 1970-х гг. (IBM). Первой коммерческой системой, в которой реализован этот язык, была система Oracle (1979 г.). В дальнейшем он был реализован в целом ряде популярных СУБД для различных типов ЭВМ и операционных систем. В некоторых СУБД, таких, как Oracle, INGRES, MS SQL-сервер и др., язык SQL используется в качестве основного. В других системах, например СУБД семейства dBase, Access, AD ABAS и других, этот язык применяется в качестве альтернативного.

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

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

Язык баз данных SQL включает в себя два языка.- язык определения схемы (SQL-DDL) я язык манипулирования данными (SQL-DML). Язык DDL позволяет описывать и создавать такие объекты базы данных, как таблицы, индексы, представления и др. Язык DML дает возможность задавать поисковые и корректирующие запросы к базе данных. Операторы языка манипулирования данными SQL могут использоваться как самостоятельно (интерактивный или автономный SQL), так и совместно с операторами других языков манипулирования данными (встроенный SQL).

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

Имеется два типа встроенных SQL-операторов: статический SQL и динамический SQL. Статический SQL ссылается на SQL-операторы, которые известны до момента запуска и в дальнейшем не изменяются, в то время как динамические SQL-операторы определяются только во время выполнения программы.

SQL является языком высокого уровня. Пользователь не должен при его использовании помнить об открытии и закрытии каких-либо таблиц, определять наиболее эффективный способ реализации запроса, активизировать индексы и т.п. Все это система делает автоматически. Во многих современных СУБД имеются построители запросов SQL. Обычно в этом качестве выступают языки типа QBE. Но не все типы запросов SQL могут быть реализованы на QBE. Некоторые типы запросов, например запрос-объединение (Union), невозможно создать на QBE.

В 1983 году Международная организация по стандартизации (ISO) и Американский национальный институт стандартов (ANSI) приступили к разработке стандарта языка SQL. В 1986 году ANSI представил свою первую версию стандарта, описанного в документе ANSI X3.135-1986 под названием «Database Language SQL» (рус. Язык баз данных SQL). Неофициально этот стандарт SQL-86 получил название SQL1. Год спустя, была завершена работа над версией стандарта ISO 9075-1987 под тем же названием. Разработка этого стандарта велась под патронажем Технического Комитета TC97 (англ. Technical Committee TC97), областью деятельности которого являлись процессы вычисления и обработки информации (англ. Computing and Information Processing). Стандарт SQL1 разделялся на два уровня. Первый уровень представлял собой подмножество второго уровня, описывавшего весь документ в целом.

Сразу после завершения работы над стандартом SQL1 в 1987 году была начата работа над новой версией стандарта, который должен был заменить стандарт SQL89, получив название SQL2, поскольку дата принятия документа на тот момент была неизвестна. Новая версия стандарта была принята в 1992 году, заменив стандарт SQL89. Как и SQL1, SQL92 также был разделён на несколько уровней, однако, во-впервых, число уровней было увеличено с двух до трёх, а во-вторых они получили названия вместо порядковых цифр: начальный (англ. entry), средний (англ. intermediate), полный (англ. full). Уровень «полный» как и Уровень 2 в SQL1 подразумевал весь стандарт целиком. Уровень «начальный» представлял собой подмножество уровня «средний», в свою очередь представлявшего собой подмножество уровня «полный». Уровень «начальный» был сравним с Уровнем 2 стандарта SQL1, но спецификации этого уровня были несколько расширены.

После принятия стандарта SQL92 к нему были добавлены ещё несколько документов, расширявших функциональность языка. так, в 1995 году был принят стандартSQL/CLI (Call Level Interface, рус. Интерфейс уровня вызовов), впоследствии переименованный в CLI95. На следующий год был принят стандарт SQL/PSM (Persistent Stored Modules, рус. Постоянно хранимые модули), получивший название PSM-96[4].

Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...