Prоtocol: TCP or UDP (Протокол: TCP или UDP). 11 глава




Рис. 14.3. Два запроса, сформированные на основе одной таблицы

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

 

 

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

 

Рис. 14.4. Форма для просмотра данных

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

Рис. 14.5. Пример простейшего отчета

Страницы. Это специальные объекты баз данных, реализованные в последней вер­сии СУБД Microsoft Access (Access 2000). Правда, более корректно их называть страницами доступа к данным. Физически это особый объект, выполненный в коде HTML, размещаемый на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данных, но содержит компоненты, через кото­рые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонентами, посетитель Web-узла может просмат­ривать записи базы в полях страницы доступа (рис. 14.6). Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, позволяют работать также с базами данных Microsoft SQL Server.

Макросы и модули. Эти категории объектов предназначены как для автоматиза­ции повторяющихся операций при работе с системой управления базами данных, так и для создания новых функций путем программирования. В СУБД Microsoft Access макросы состоят из последовательности внутренних команд СУБД и явля­ются одним из средств автоматизации работы с базой. Модули создаются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications. Это одно из средств, с помощью которых разработчик базы может зало­жить в нее нестандартные функциональные возможности, удовлетворить специ­фические требования заказчика, повысить быстродействие системы управления, а также уровень ее защищенности.

14.3. Взаимодействие заказчика базы данных с разработчиком

Общие замечания

 

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

Все базы данных можно классифицировать согласно тому, как к ним подходит тру­довой коллектив, на удобные и неудобные. Если внедрение базы данных на пред­приятии ничего не дает трудовому коллективу, кроме дополнительной нагрузки, он изыскивает способы парировать внедрение и саботировать производительную работу системы. Анализ многочисленных примеров «внедренных», но не работаю­щих баз данных показывает, что ответственность за неудачу разделяют как разра­ботчик, так и заказчик. То, что заказчик не является специалистом в области баз данных, не имеет никакого значения. Он является специалистом в своей предмет­ной области и должен уметь объяснить свои потребности и задачи разработчику.

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

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

Разработка технического задания

 

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

• разработчик демонстрирует заказчику работу аналогичной базы данных, после чего заказчик высказывает свои пожелания и они согласовывают специфика­цию отличий;

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

При подготовке технического задания составляют:

• список исходных данных, с которыми работает заказчик;

• список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;

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

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

Разработка схемы данных

 

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

1. Работа начинается с составления генерального списка полей — он может насчи­тывать сотни позиций.

2. В соответствии с тем, какие данные размещаются в каждом поле, определяют наиболее подходящий тип для каждого поля.

3. Далее распределяют поля генерального списка по базовым таблицам. На пер­вом этапе распределение производят по функциональному признаку. Прин­цип разделения очень прост: обеспечить, чтобы ввод данных в одну таблицу производился в рамках одного подразделения, а еще лучше — на одном рабо­чем месте.

Наметив столько таблиц, сколько подразделений (рабочих мест) охватывает база данных, приступают к дальнейшему делению таблиц. Критерием необхо­димости деления является факт множественного повтора данных в соседних записях. На рис. 14.6 показана таблица, у которой в поле Адрес наблюдается повтор данных. Это явное свидетельство того, что таблицу надо поделить на две взаимосвязанных таблицы и, возможно, заполнять эти таблицы на разных рабочих местах.

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

 

Рис. 14.6. Если данные в поле начинают повторяться, это признак того, что таблицу стоит поделить

 

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

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

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

 

Рис. 14.7. Схема связей между таблицами

 

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

Рассмотрим таблицу Клиенты (рис. 14.7). Здесь поле N Контракта является клю­чевым. Это понятно, поскольку с каждым клиентом заключается свой уникаль­ный контракт, номер которого идентифицирует клиента однозначно. Если мы рассмотрим таблицу Состав пакетов, то увидим, что в ней уникально название пакета программ, поскольку у каждого пакета свой уникальный состав. Но если мы рассмотрим таблицу Подписка, то увидим, что номер контракта клиента уникален, а поле названия пакета подписки — нет, поскольку разные клиенты могли подписаться на одинаковые пакеты. Интересно отметить, что в таблице Оплата номер контракта уже не является уникальным. Один клиент мог опла­чивать услуги много раз, и каждый раз его номер контракта фиксировался.

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

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

6. Разработкой схемы данных заканчивается «бумажный» этап работы над техни­ческим предложением. Эту схему заказчик согласовывает с исполнителем, и лишь после этого исполнитель может приступать к непосредственному созда­нию базы данных.

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

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

14.4. Работа с СУБД Microsoft Access 2000

Общие замечания

 

Ниже мы рассмотрим, как в программе Microsoft Access 2000 реализованы сред­ства разработки основных объектов базы данных, и в упражнениях познакомимся с конкретными приемами работы. Однако прежде чем приступать к освоению сис­темы, следует учесть ряд важных замечаний, связанных с особенностями ее авто­матизации.

СУБД Microsoft Access 2000 предоставляет несколько средств создания каждого из основных объектов базы. Эти средства можно классифицировать как:

• ручные (разработка объектов в режиме Конструктора);

• автоматизированные (разработка с помощью программ-мастеров);

• автоматические — средства ускоренной разработки простейших объектов.

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

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

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

3. Разработку макросов и модулей в данном пособии мы не рассматриваем. Эти средства ориентированы на профессиональных разработчиков баз данных, поэтому в рамках курса «Информатики» для них недостаточно места.

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

Создание таблиц. Работа с любыми объектами начинается с окна База данных (рис. 14.8). На его левой панели сосредоточены элементы управления для вызова всех семи типов объектов программы. Создание таблиц начинается с выбора эле­мента управления Таблицы.

 

Рис. 14.8. Окно База данных является исходным элементом управления программы Microsoft Access

 

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

Окно Конструктора таблиц представлено на рис. 14.9. То, что мы видим в этом режиме, фактически является графическим бланком для создания и редактирования струк­туры таблиц. В первом столбце вводят имена полей. Если свойство Подпись для поля не задано, то Имя поля станет одновременно и именем столбца будущей таб­лицы. Тип для каждого поля выбирают из раскрывающегося списка, открываемого кнопкой выбора типа поля. Эта кнопка — скрытый элемент управления. Она отображается только после щелчка на поле бланка. Это надо иметь в виду — в Microsoft Access очень много таких скрытых элементов управления, которые не отобража­ются, пока ввод данных не начат.

 

Рис. 14.9. Проектирование структуры таблицы

 

При изучении приемов работы с программой Microsoft Access целесообразно специ­ально «прощелкивать» пустые поля ее бланков левой кнопкой мыши в поисках «скры­тых» элементов управления.

 

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

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

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

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

Созданную таблицу открывают в окне База данных двойным щелчком на ее значке. Новая таблица не имеет записей — только названия столбцов, характеризующие структуру таблицы (рис. 14.10). Заполнение таблицы данными производится обыч­ным порядком. Курсор ввода устанавливается в нужную ячейку указателем мыши. Переход к следующей ячейке можно выполнить клавишей TAB. Переход к очеред­ной записи выполняется после заполнения последней ячейки.

 

Рис. 14.10. Пример новой таблицы

 

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

Начинающим пользователям Microsoft Access доставляет неудобство тот факт, что данные не всегда умещаются в ячейках таблицы. Шириной столбцов можно управ­лять методом перетаскивания их границ. Удобно использовать автоматическое форматирование столбцов «по содержимому». Для этого надо установить указа­тель мыши на границу между столбцами (в строке заголовков столбцов), дождаться, когда указатель сменит форму, и выполнить двойной щелчок. Это общесистемный прием Windows 98, и им можно пользоваться в данной программе, как и во многих других.

После наполнения таблицы данными сохранять их не надо — все сохраняется авто­матически. Однако если при работе с таблицей произошло редактирование ее макета (например, изменялась ширина столбцов), СУБД попросит подтвердить сохране­ние этих изменений.

Если возникнет необходимость изменить структуру таблицы (состав полей или их свойства), таблицу надо открыть в режиме Конструктора. Для этого ее следует выделить в окне База данных и щелкнуть на кнопке Конструктор.

Если на этапе проектирования базы данных была четко разработана структура таб­лиц, то создание таблиц с помощью Конструктора происходит очень быстро и эффек­тивно. Даже без использования автоматизированных средств создание основы для достаточно крупных проектов происходит в считанные минуты — это ценное свой­ство СУБД Microsoft Access, но оно реализуется при непременном условии тща­тельной предварительной подготовки.

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

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

Здесь мы подходим к важному вопросу: «А зачем вообще нужна связь между таб­лицами?» У связи два основных назначения. Первое — обеспечение целостности данных, а второе — автоматизация задач обслуживания базы. Представим себе, что в таблице Клиенты, где каждый клиент уникален, кто-то удалит запись для одного из клиентов, но не сделает этого в таблице Подписка. Получится, что согласно таб­лице Подписка некто, не имеющий ни имени, ни адреса, а только абстрактный номер контракта, подписан на услуги фирмы. Узнать по номеру контракта, кто же это был на самом деле, будет невозможно — произошло нарушение целостности дан­ных.

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

Связь между таблицами позволяет:

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

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

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

 

Рис. 14.11. Средство настройки межтабличной связи

 

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

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

Работа с запросами

 

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

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

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

В учебных целях запросы лучше готовить вручную, с помощью Конструктора. Как и в случае с таблицами, для этого есть специальный значок в окне База данных. Он называется Создание запроса в режиме конструктора и открывает специальный бланк, называемый бланком запроса по образцу. За этим длинным названием скры­вается тот приятный факт, что, хотя запросы к таблицам баз данных пишутся на специальном языке программирования — SQL, пользователям Microsoft Access изу­чать его не обязательно, а большинство операций можно выполнить щелчками кнопок мыши и приемом перетаскивания в бланке.

Бланк запроса по образцу представлен на рис. 14.12. Как видно, он состоит из двух областей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы — по одному столбцу на каждое поле буду­щей результирующей таблицы.

 

Рис. 14.12. Бланк запроса по образцу

 

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

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: