Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

На профессиональном уровне. Насколько велик ваш экран?

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

Как правило, пользователи стараются применять разрешение 800x600 или 1024x768, хотя более высокие разрешения тоже не редки. (Разрешение 800x600 означает 800 пикселов по ширине и 600 пикселов по высоте.) Важно не только заданное вами разреше­ние. Если вы планируете использовать БД Access совместно с другими людьми, воз­можно, вам захочется проверить, хорошо ли выглядят ваши формы при других часто используемых разрешениях.

Для определения текущего разрешения сверните все программы. Затем щелкните пра­вой кнопкой мыши рабочий стол Windows и выберите команду Свойства. На экране появится окно Свойства: Экран. Выберите вкладку Настройка для выяснения текущего разрешения монитора и для испытания воздействия других разрешений на внешний вид ваших форм.

Увеличение ширины элемента управления до ширины формы

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

Выполните следующие действия.

1. Сначала убедитесь в том, что у формы нет лишнего пустого пространства. В Конструкторе сожмите раздел Область данных, так чтобы его ширины хватало лишь на размещение элементов управления.

Если оставить лишнее пустое пространство, трудно проследить действие привязки. Вер­нитесь к рис. 13.2, чтобы вспомнить, как следует изменять размер формы.

2.Выделите элементы управления, которые хотите растянуть до ширины окна.

Если у вас форма, показанная на рис. 13.7, можно выбрать все элементы управления По­ле. Держите нажатой клавишу <Shift>, пока щелкаете их кнопкой мыши.

На рис. 13.9 показан результат, который вы получите.

Примечание

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

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

3. Выберите на ленте Инструменты конструктора форм | Упорядочить Размер Привязка Растянуть вдоль верхнего края (Form Design Tools | Arrange Size Anchoring Stretch Across Top). (Если вы предпочитаете настраивать параметры привязки в Режиме макета, выберите Работа с макетами форм | Упорядочить → Положение → Привязка Растянуть вдоль верхнего края (Form Layout Tools | Arrange Position Anchoring Stretch Across Top).)

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

Увеличение размера элемента управления до максимально возможного

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

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

Вот как реализовать эту модель на практике.

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

При любых типах привязки ваш главный враг — свободное пространство.

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

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

3. Выберите на ленте Инструменты конструктора форм | Упорядочить Размер Привязка Растянуть вниз и по горизонтали (Form Design Tools | Arrange Size Anchoring Stretch Down and Across).

Этот шаг привяжет элемент управления ко всем четырем сторонам формы: верхней, нижней, левой и правой. В результате элемент увеличится, если форму расширить или растянуть по вертикали. Если вы хотите, чтобы элемент управления увеличивал только вертикальный размер, а горизонтальный оставался прежним, выберите Привязка → Растянуть вниз (Anchoring Stretch Down).

4. Выделите первый элемент управления под элементом, увеличивающим вертикальный размер. Выберите Привязка Снизу слева (Anchoring Bottom Left).

Это действие привязывает элемент управления к левой и нижней сторонам. Таким обра­зом, когда форма растягивается по вертикали, элемент управления смещается вниз, ос­вобождая место для элемента, расположенного над ним.

Можно также использовать вариант Растянуть вдоль нижнего края (Stretch Across Bottom). В этом случае элемент управления также привязан к нижней стороне, но он увели­чивается горизонтально в соответствии с шириной формы.

Примечание

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

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

5. Повторите пункт 4 для каждого элемента управления, расположенного ниже.

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

При условии, что привязка выполнена корректно, вы получите результат, показанный на рис. 13.10.

Рис. 13.10. Теперь, когда окно формы станет больше по вертикали, поле Notes получит дополнительное пространство

Последовательность перехода: облегчение переходов с помощью клавиш

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

клавиатурных команд не хотят терять время на отрывание пальцев от клавиш. Тут на помощь приходит клавиша <Таb>.

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

Первое нажатие клавиши <Таb> на форме может привести в изумление. Если вы потра­тили много времени на настройку элементов управления и их переупорядочивание, клави­ша <Таb> необязательно приведет вас к тому элементу управления, на который вы рассчи­тываете. Рис. 13.11 иллюстрирует эту проблему.

Рис. 13.11. Вы рассчитываете, что, нажав клавишу <Таb>, перейдете из поля FirstName в поле LastName. Но попробуйте сделать это и окажетесь в поле Country, расположенном в середине формы

Примечание

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

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

с помощью клавиши <Таb>, есть три важных свойства (которые можно найти на вкладке Другие в Окне свойств). Это следующие свойства.

  • Переход по Tab (Tab Stop) определяет, поддерживает ли элемент управления переходы с помощью клавиши <Таb>. Если установить значение Да, можно с помощью клавиши <Таb> перейти в этот элемент. Если изменить значение свойства на Нет, неважно, сколько раз вы нажмете клавишу <Таb> — вы никогда не попадете на этот элемент управления. Когда впервые вставляется элемент, у этого свойства всегда установлено значение Да.

  • Автопереход по Tab (Auto Tab) оказывает влияние, только если элемент управления использует маску ввода (см. разд. "Маски ввода " главы 4). Если задать этому свойству значение Да, то как только вы введете последний символ в маску, вы автоматически перейдете к следующему элементу управления. Это свойство очень удобно для быстрого ввода данных, но может мешать, когда допущена ошибка, поскольку вы переходите к следующему элементу прежде, чем успеете ее исправить.

  • Индекс перехода по Tab (Tab Index) управляет последовательностью перехода — иначе говоря, определяет, куда вы переходите при каждом нажатии клавиши <Таb>. Когда форма открывается в первый раз, вы начинаете с элемента управления с индексом перехода по <Таb>, равным 0. Когда нажимается клавиша <Таb>, выполняется переход к элементу управления с ближайшим превышающим индексом перехода по <Таb> (например, 1). Этот процесс продолжается до тех пор, пока вы не достигнете элемента управления с максимальным индексом перехода. Нажмите снова клавишу <Таb>, и вывернетесь к началу.

Примечание

Эти свойства есть только у элементов управления, способных принять фокус — другими сло­вами, элементов, которые можно щелкнуть кнопкой мыши для взаимодействия с ними. Оче­видно, что Поля, Флажки и Кнопки поддерживают переходы с помощью клавиши <Таb>. А Подписи и Рисунки — нет, поскольку нет возможности обмена информацией с ними.

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

1. Щелкните правой кнопкой мыши свободное место на форме и выберите команду Переходы.

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

2. В списке Раздел (Selection) выберите раздел формы, с которым хотите работать. Почти всегда это Область данных.

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

или с Областью данных. Но очень редко попадается форма с элементами управления, поддерживающими переходы по клавише <Таb>, расположенными за пределами Облас­ти данных.

3. Если хотите позволить программе Access попытаться задать правильную последовательность переходов, щелкните мышью кнопку Авто (Auto Order).

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

4. Для переноса одного элемента управления в новое место в последовательности перехода перетащите его мышью.

Этот шаг требует небольшой ловкости. На рис. 13.12 показано, как он выполняется.

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

5. Когда исправите последовательность перехода, щелкните мышью кнопку ОК.

Подсказка

Последовательность перехода действует в двух направлениях. Можно перейти к очередному элементу в последовательности, нажав клавишу <Таb>, и к предыдущему элементу, нажав комбинацию клавиш <Shift>+<Tab».

Контроль с помощью элементов управления

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

Блокировка полей

В БД почти все порции информации — объекты для изменения. Но это не означает, что сле­дует всем предоставить свободный доступ ко всем полям.

Предположим, что компания Boutique Fudge создает форму CurrentOrders (текущие за­казы), которая позволит персоналу склада просматривать ожидающие обработки заказы клиентов, отсортированные по дате. Персонал склада должен просмотреть каждый заказ, упаковать и затем отправить его. Единственное изменение, которое она должны вносить, — обновление состояния заказа (обозначить дату его отправки) или вставить запись в журнал регистрации доставки. Другие подробности, такие как дата заказа, содержимое заказа и кли­ент, получающий заказ, должны быть закрыты. У сотрудников склада нет причин изменять эти данные.

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

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

  • Блокировка (Locked) определяет, можно ли изменять поле. Если у свойства значение Да, нельзя редактировать значение поля. Но при этом можно выделить содержимое поля и скопировать его.

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

Подсказка

Если вы хотите запретить любые варианты редактирования, рассмотрите возможность приме­нения свойств формы Разрешить изменение (Allow Edits), Разрешить удаление (Allow Deletions) и Разрешить добавление (Allow Additions), описанных в табл. 12.2.

Предупреждение ошибок с помощью условий на значения

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

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

<=Date ( )

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

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

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

  • Условие на значение (Validation Rule) задает выражение, которому должно удовлетворять значение для того, чтобы считаться допустимым. Например, выражение <=Date () сравнивает текущее значение поля с датой, возвращаемой функцией Date () (которая представляет текущую дату). Ввод разрешается, только если вводимая дата сегодняшняя или предшествующая. Гораздо больше примеров выражений для проверки значений можно найти в разд. "Запись условия на значение поля" главы 4.

  • Сообщение об ошибке (Validation Text) задает текст сообщения об ошибке, которое выводится, если вы пытаетесь ввести значение, нарушающее условие на значение. Этот пользовательский текст заменяет общее сообщение об ошибке программы Access — "Для введенного значения не выполняется условие на значение данного поля или элемента управления" — в котором для реальных пользователей мало смысла.

  • Маска ввода (Input Mask) задает образец, который направляет и ограничивает пользовательский ввод. Маски ввода — хороший способ обработки текстовых значений фиксированной длины, например, телефонных номеров, почтовых кодов и номеров социального обеспечения. В разд. "Маски ввода" главы 4 приведена подробная информация о том, как действуют и создаются маски ввода.

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

Примечание

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

Выполнение вычислений в выражениях

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

Рис. 13.13. В данной форме выражение

= "You have " & [DueDate]-Date () & " days to finish" вычисляет число дней между текущей датой и датой окончания проекта и помещает его в законченное предложение. Вы увидите появление этой информации, как только введете дату окончания и перейдете в другое поле. (Это требование можно обойти и заставить поля обновляться во время ввода с помощью небольшого фрагмента VBA-кода, запускающего повторное вычисление.)

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

1. Добавьте на форму элемент управления Поле (из группы ленты Инструменты конструктора форм | Конструктор Элементы управления).

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

2. В Окне свойств выберите вкладку Данные (Data). Поместите выражение в параметр Данные (Control Source).

Помните о том, что выражения начинаются со знака равенства. Выражение =Price*l. 15 вычисляет цену товара с учетом налога, умножая значение в поле Price на 1.15.

3. Можно задать в свойстве Доступ (Enabled) значение Нет для усиления запрета на изменение этого значения.

Когда создается элемент управления с применением выражения, программа Access не раз­решает редактировать вычисляемое значение. Это все равно, что свойству Блокировка (Locked) присвоить значение Да. Но некоторые пользователи все равно могут делать по­пытки изменить эту величину. Если по-вашему такое развитие сценария может создавать проблемы, задайте в свойстве Доступ значение Нет, чтобы элемент управления отобра­жался как недоступный и никто не мог перейти в него с помощью клавиши <Таb>. Эта ус­тановка также означает невозможность копирования значения в поле ввода.

4.При желании примените форматирование.

Вы можете настроить шрифт и цвет с помощью группы ленты Инструменты конструк­тора форм | Конструктор Шрифт (Form Design Tools | Design Font). Для настройки отображения программой Access числовых значений перейдите в Режим макета и ис­пользуйте группу ленты Работа с макетами форм | Формат Форматирование (Form Layout Tools | Formatting Formatting).

Примечание

Для удаления рамки вокруг поля ввода (так оно больше напоминает подпись) выделите его в Конструкторе, выберите на ленте кнопку Инструменты конструктора форм | Конструктор Элементы управления Тип линии (Form Design Tools | Design Controls Line Type) и укажите первый элемент списка (он пустой, что означает "отсутствует").

Компоновка с применением элемента управления Вкладка

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

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

Для применения элемента управления Вкладка выполните следующие действия.

1. В группе ленты Инструменты конструктора форм | Конструктор • Элементы управления щелкните кнопкой мыши пиктограмму Вкладка.

Когда Вкладка появится на экране, вам, вероятно, захочется переместить ее или изме­нить ее размеры для наилучшего соответствия форме.

2. Добавьте все нужные страницы Вкладки.

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

Для создания новой страницы щелкните правой кнопкой мыши любую страницу (но не заголовок вкладки) и выберите Вставить вкладку (Add Page). Для удаления сущест­вующей страницы щелкните ее правой кнопкой мыши и выберите команду Удалить вкладку (Delete Page).

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

3. Задайте подходящие имена вкладок.

Имена, которые первоначально присваивает вкладкам программа Access, малоинформативны, например, Вкладка19 и Вкладка20. Для изменения заголовка или имени вкладки выделите страницу и измените параметр Подпись (Caption) в Окне свойств. У страни­цы, отображающей адресные поля клиента, мог бы быть заголовок "Address Information" (адресные данные).

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

Примечание

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

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

4. Поместите элементы управления на разные страницы.

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

Подсказка

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

Переходы по ссылкам

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

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

  • открытием файла (например, документа Word) в программе, которой он создан. Для создания ссылки выполните следующие действия.

1. В группе ленты Инструменты конструктора форм | Конструктор -» Элементы управления щелкните кнопкой мыши пиктограмму Вставить гиперссылку.

На экране появится диалоговое окно Вставка гиперссылки (Insert Hyperlink) (рис. 13.15) при условии, что у вас включены мастера создания элементов управления (см. разд. "Вставка элементов управления в форму" ранее в этой главе). С помощью этого окна вы сможете задать текст для ссылки и пункт назначения, куда ссылка перенесет пользовате­лей, когда они щелкнут ее кнопкой мыши.

2. В левой части окна щелкните кнопкой мыши вариант файлом, веб-страницей (Existing File or Web Page).

Можно также использовать вариант объектом в базе данных (Object in This Database) для создания ссылки, открывающей другой объект БД, например, форму. Но для этой задачи больше подходят кнопки.

Вариант электронной почтой (E-mail Address) выбирается для создания ссылки на адрес электронной почты. При щелчке кнопкой мыши такой ссылки запускается ваша текущая программа работы с электронной почтой и создается новое сообщение с предоставлен­ным вами начальным текстом.

3. В поле ввода Текст (Text to display) введите любой текст, который будет отображать ссылка.

Обычно такой текст включает адрес реального Web-сайта (например, http://www.mycompany.com) или информационное сообщение (например, "Щелкните здесь для перехода на Web-сайт моей компании").

Рис. 13.15. Кто-то собрался создать новую гиперссылку. Она будет выводиться с текстом "Щелкните здесь для перехода на Web-сайт компании" (который вы, конечно, можете редактировать, чтобы сообщить то, что хотите)

4. Если хотите задать пользовательскую всплывающую подсказку для данной гиперссылки, щелкните мышью кнопку Подсказка (ScreenTip). Введите свое сообщение и щелкните мышью кнопку ОК.

Как вы уже наверняка знаете, подсказка — маленькое окно желтого цвета, содержащее сообщение и открывающееся над гиперссылкой, когда указатель вашей мыши перемеща­ется поверх ссылки. Если не задавать собственную подсказку, программа Access выведет полный путь или URL (Web-адрес).

5. Если вы хотите добавить ссылку на документ, найдите соответствующий файл с помощью просмотра и выделите его. Если вы хотите вставить ссылку на Web-страницу,введите URL в поле Адрес (Address).

Если добавляется ссылка на документ, Access задает в поле Адрес полный путь к файлу, например, C:\MyDocuments\Resume.doc. Можно ввести этот путь самостоятельно, а ес­ли ваша сеть поддерживает, то и путь UNC (Universal Naming Convention, соглашение об универсальных именах), который ссылается на файл, хранящийся на другом компьютере с помощью указания имени компьютера, например, \\SalesComputer\Documents\CompanyPolicy.doc.

Примечание

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

6. Щелкните мышью кнопку ОК для вставки гиперссылки.

На форме появится новая гиперссылка. Затем можно переместить ее в любое место формы.

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

Переходы с помощью списков

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

Программа Access предоставляет два варианта применения элементов управления со списками:

их можно использовать для редактирования значения поля. Access автоматически создает Поле со списком, если для поля определена подстановка (как описано в разд. "Поиск в связанных таблицах" главы 5). Это Поле со списком действует так же, как список под­становки на листе данных;

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

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

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

1. Убедитесь в том, что средство Использовать мастера для элементов управления (Control Wizard) включено.

Если вы не уверены в этом, проверьте, подсвечена ли кнопка ленты Инструменты конст­руктора форм ) Конструктор → Элементы управления → Использовать мастера (Form Design Tools | Design Controls Use Control Wizards).

2. В группе ленты Инструменты конструктора форм | Конструктор Элементы управления щелкните кнопкой мыши пиктограмму Список или Поле со списком.

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

3.Нарисуйте элемент управления на форме.

Как только вы закончите, на экране появится мастер, чтобы помочь вам настроить спи­сок (рис. 13.17). Этот процесс аналогичен мастеру подстановки, который применялся для установки связи таблиц.

4. Выберите переключатель Поиск записи в форме и щелкните мышью кнопку Далее. Вы узнаете о других вариантах в следующем разделе.

Рис. 13.16. На этой форме список позволяет перейти к нужному товару одним щелчком мыши. Обратите внимание на то, что этот список не заменяет собой элемент управления Поле для ProductName. Список может применяться для поиска нужной записи, а поле — для изменения названия товара. Конечно, если в данной форме названия товаров никогда не меняются, нет необходимости включать в нее поле ProductName

Рис. 13.17. Когда создается поле со списком (или список), мастер создания списка позволяет вам выбрать, применять его для редактирования или для переходов

5. Выберите доле, которое хотите использовать для просмотра, и щелкните мышью кнопку Далее.

В примере рис. 13.16 используется поле ProductName. Технически список всегда функ­ционирует одинаково — он находит элементы на основе значения уникального первично­го ключа (см. разд. "Первичный ключ "главы 2). У создаваемого вами списка на самом деле два столбца. В первом хранятся значения первичного ключа, а во втором отображаются значения выбранного вами поля. Но на форме вы не увидите первичного ключа, потому что он скрыт.

Примечание

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

6. Оставьте установленным флажок Скрыть ключевой столбец (рекомендуется) и щелкните мышью кнопку Далее для продолжения.

Если вы не планируете отображать столбец с первичным ключом, — обычно это так — просто щелкните мышью кнопку Далее, чтобы проскочить это окно.

7. Введите название списка.

Оно появится в подписи, расположенной рядом с элементом управления Список. Можно использовать что-то вроде "Щелкните кнопкой мыши товар, который хотите просмот­реть". Позже подпись можно будет переместить или удалить.

8. Щелкните мышью кнопку Готово для создания списка.

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

Примечание

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

Выполнение действий с помощью кнопок

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

Когда на форму вставляется элемент управления Кнопка, Access запускает полезный мастер создания кнопки, в котором можно выбрать нужное действие из списка заранее под­готовленных вариантов. Затем мастер поможет создать макрос (см. главу 15), который сде­лает все, что потребуется.

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

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

  1. В группе ленты Инструменты конструктора форм | Конструктор Элементы управления щелкните кнопкой мыши пиктограмму Кнопка.

  2. Нарисуйте элемент управления Кнопка на форме.

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

Рис. 13.18.Вы можете заставить форму выполнять шесть категорий действий. После выбора категории (в списке слева) вы увидите список действий в выбранной категории (в списке справа)

3. Выберите действие, которое хотите выполнить.

Большинство действий интуитивно понятно. Далее приведены некоторые самые инте­ресные.

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

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

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

Примечание

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

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

  • В категории Приложение вы ограничены одним действием — очевидным Выйти из приложения.

  • В категории Разное вы найдете варианты для запуска отдельного запроса Выполнение запроса) или макроса (Запуск макроса). О создании макросов рассказывается в главе 15.

4. Щелкните мышью кнопку Далее.

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

После того как дополнительная информация введена, Access попросит ввести текст кнопки и выбрать изображение (рис. 13.19).

Рис. 13.19. Использовать рисунки соблазнительно, но те, что предлагает Access, определенно старомодные. Большинство фанатов программы Access выбирают кнопки без рисунков. Если вы решили включить рисунок, установите флажок Показать все рисунки для того, чтобы увидеть все, что может предложить Access (даже рисунки, которые не подходят для текущего действия), или воспользуйтесь кнопкой Обзор для вставки собственного рисунка

Примечание

Любой точечный рисунок (BMP-файл) подходит в качестве рисунка для кнопки, если он доста­точно мал, чтобы уместиться на ней. Годятся также пиктограммы, файлы JPEG и GIF.

5.Введите какой-либо текст и выберите рисунок. Затем щелкните мышью кнопку Далее.

Эти данные потом можно изменить, корректируя свойства Подпись (Caption) и Рисунок (Picture) (которые выводятся на вкладке Макет).

6.Задайте имя кнопки.

Имя выводится в списке Окна свойств. Чем лучше выбрано имя, тем легче найти кнопку. А если вы пишете код, работающий с кнопками (см. главу 16), чем лучше имя, тем легче другим читать и понимать ваш код.

7.Щелкните мышью кнопку Готово.

Для испытания кнопки перейдите в Режим формы и щелкните кнопку мышью.

Формы и связанные таблицы

Как вы узнали в главе 5, немногие таблицы по-настоящему независимы. Большинство из них связано с другими таблицами паутиной отношений. Формы могут воспользоваться этими отношениями для отображения связанной информации. Можно применить одну форму для отображения (и редактирования) данных о клиентах и их заказах. Или можно просматривать товары и их категории. Такой свободы нет на листе данных.

Примечание

Профессиональные разработчики Access применяют запросы с объединением (см. разд. "Запросы и связанные таблицы" главы 6) для отображения информации из нескольких таблиц. Но в запросе с операцией объединения нельзя редактировать связанные данные. В хорошо спроектированной форме такого ограничения нет — можно корректировать данные как в роди­тельской, так и в дочерней записях.

Связи таблиц и простые формы

Программа Access достаточно сообразительна, чтобы заметить связи во время создания но­вой формы для родительской таблицы. Для того чтобы понять, что это значит на практике, выделите таблицу-родитель для другой таблицы. Можно воспользоваться таблицей ProductCategories в БД Boutique Fudge, поскольку каждая категория служит родительской записью, связанной с одной или несколькими записями-потомками в таблице Products. (Можно также использовать таблицу Customers, поскольку клиенты связаны с заказами, или таблицу Orders, т. к. заказы связаны с конкретными компонентами заказа. Для практической проверки примените БД Boutique Fudge для данной главы, содержащую загружае­мые из Интернета данные.)

На рис. 13.20 показано, что произойдет, если выделить таблицу ProductCategories, а за­тем выбрать на ленте Создание Формы Форма. Программа Access создает форму, которая выводит ожидаемые записи (категории) и связанные записи из таблицы-потомка (в данном случае товары).

Примечание

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

Рис. 13.20. Эта форма позволяет просматривать разные категории товаров. При каждом переходе к новой категории мини-лист данных на форме отображает связанные записи о товарах. С помощью такой формы можно редактировать данные о товарах и о категории товаров

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

Элемент управления Подчиненная форма

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

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

То, что отображает подчиненная форма, определяется тремя свойствами. Первое свойст­во Объект-источник (Source Object) задает объект БД, имеющий связанные записи. Можно выбрать существующие таблицу, запрос или форму.

Следующие два свойства — Основные поля (Link Master Fields) и Подчиненные поля (Link Child Fields) — позволяют определить способ связи двух таблиц. Основное поле — это поле в форме, а подчиненное поле — это поле в объекте-источнике. В примере с категориями товаров основное поле — ID (в таблице ProductCategories) и подчиненное поле — поле ProductID (в таблице Products). После того как эта связь определена, программа Access знает, как фильтровать подчиненную форму. Она просматривает основное поле и отобража­ет только те записи, у которых то же значение в подчиненном поле. На рис. 13.20 Access ото­бражает товары текущей категории.

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

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

Подсказка

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

Создание настроенных подчиненных форм

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

Хитрость заключается в задании в свойстве Объект-источник формы, которую хотите отобразить в элементе управления Подчиненная форма. Форма появится в режиме вывода по умолчанию в соответствии со значением в свойстве Режим по умолчанию. Можно выво­дить связанные записи в табличном макете или макете в столбец. На рис. 13.21 показан пример.

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

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

Рис.13.21. Благодаря магии подчиненных форм в этом окне на самом деле одновременно отображаются две формы: ProductCategories_WithSubform и ProductslnCategory_Subform.

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

Подсказка

Если вы решили создать специализированную форму, использующую элемент управления Подчиненная форма, отразите ее роль в названии. Название ProductslnCategory Subform (Подчиненная форма для товаров из данной категории) подразумевает форму, спроектирован­ную для применения в качестве подчиненной формы.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]