- •Часть I. Хранение данных в таблицах 34
- •Глава 1. Создание вашей первой базы данных 35
- •Глава 2. Создание более сложных таблиц 66
- •Глава 3. Обработка листа данных: сортировка, поиск,
- •Глава 4. Блокировка неправильных данных 136
- •Глава 5. Связывание таблиц с помощью отношений 168
- •Часть II. Обработка данных с помощью запросов 206
- •Глава 6. Запросы, выбирающие записи 207
- •Глава 7. Основные хитрости, применяемые в запросах 241
- •Глава 8. Запросы, обновляющие записи ..272
- •Глава 9. Анализ данных с помощью перекрестных запросов и
- •Часть III. Отчеты 323
- •Глава 10. Создание отчетов 324
- •Глава 11. Проектирование сложных отчетов 356
- •Часть IV. Разработка пользовательского интерфейса
- •Глава 12. Создание простых форм 392
- •Глава 13. Проектирование сложных форм 426
- •Глава 14. Создание системы переходов 465
- •Часть V. Программирование в access 496
- •Глава 15. Автоматизация задач с помощью макросов 497
- •Глава 16. Автоматизация выполнения задач средствами языка
- •Глава 17. Написание кода с более развитой логикой 571
- •Часть VI. Совместное использование access 615
- •Глава 18. Совместное использование бд несколькими пользователями 616
- •Глава 19. Импорт и экспорт данных 650
- •Глава 20. Подключение Access к sql Server 692
- •Глава 21. Подключение Access к SharePoint 724
- •На профессиональном уровне. Преимущества хорошо спроектированной базы данных
- •Для тех, кто понимает. Когда программы Access недостаточно
- •Уголок ностальгии. Зачем опять изобретать колесо?
- •Уголок ностальгии. Сочетания клавиш в Access 2003
- •Часть I
- •Часто задаваемый вопрос. Использование чужой бд
- •На профессиональном уровне. Шаблоны, подходящие для разных целей
- •На профессиональном уровне. Работа Access в интерактивном режиме
- •Для тех, кто понимает. Использование Access бд, созданных в более ранних версиях программы
- •На профессиональном уровне. Проектирование бд для начинающих
- •На профессиональном уровне. Вставка больших значений в узкие столбцы
- •Для тех. Кто понимает. Если сомневаетесь, не удаляйте
- •Малоизвестная или недооцененная возможность. Копирование записи целиком за один шаг
- •Малоизвестная или недооцененная возможность. Сжатие бд
- •Часто задаваемый вопрос. У какого файла расширение laccdb?
- •Практические занятия для опытных пользователей. Изменение папки, которую Access использует для хранения бд
- •Малоизвестная или недооцененная возможность. Сворачивание ленты
- •Экономящая время подсказка. Создание ярлыка для таблицы
- •Глава 2
- •Для тех, кто понимает. Изменение типа данных может привести к потере информации
- •На профессиональном уровне. Нормативы максимальной длины
- •На профессиональном уровне. Как Access предотвращает дублирование записей
- •На профессиональном уровне. Почему так важна уникальность
- •Глава 3
- •Малоизвестная или недооцененная возможность. Настройка всех листов данных
- •На профессиональном уровне. Числа и специальные символы в текстовых полях
- •Практические занятия для опытных пользователей. Фильтры в противоположность запросам
- •Малоизвестная или недооцененная возможность. Поиск и замена
- •Глава 4
- •Для тех, кто понимает. Не требуйте слишком многого
- •На профессиональном уровне. Как работают индексы
- •Часто задаваемый вопрос. Индексы и производительность
- •Практические занятия для опытных пользователей. Вставка вашей маски в список масок программы
- •На профессиональном уровне. Создание списка подстановки, использующего другую таблицу
- •Глава 5
- •Часто задаваемый вопрос. Отключение обеспечения целостности данных
- •Для тех, кто понимает. Пользуйтесь каскадным удалением с осторожностью
- •Практические занятия для опытных пользователей. Изменение параметров подтаблицы
- •Часто задаваемый вопрос. Обновление списка
- •Для тех, кто понимает. Применяйте связи "один-к-одному" с осторожностью
- •Часто задаваемый вопрос. Работа со связями "многие-ко-многим"
- •Часто задаваемый вопрос. Печать ваших отношений
- •Часть II
- •Для тех, кто понимает. Не бойтесь подстановок
- •На профессиональном уровне. Синтаксис фильтра
- •Практические занятия для опытных пользователей. Как индексы ускоряют поиск
- •Малоизвестная или недооцененная возможность. Запросы на базе запросов
- •Для тех, кто понимает. Подумайте дважды, прежде чем изменять структуру таблиц
- •На профессиональном уровне. Сравнение: отношения и объединения
- •На профессиональном уровне. Изменение данных при использовании запроса с объединением
- •Глава 7
- •На профессиональном уровне. Синхронизация запросов
- •Малоизвестная или недооцененная возможность. Переименование поля в запросе
- •Часто задаваемый вопрос Банковское округление
- •Практические занятия для опытных пользователей. Улучшенные числовые форматы
- •Малоизвестная или недооцененная возможность. Использование случайных чисел для сортировки в случайном порядке
- •Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки
- •Для тех, кто понимает. Вычисления для дат и времени
- •Глава 8
- •Аварийная ситуация. Когда Access блокирует ваше обновление
- •Малоизвестная или недооцененная возможность. Скрытие запроса
- •Глава 9
- •Часто задаваемый вопрос. Итоговый проигрыш; итоговый запрос против перекрестного
- •Для тех, кто понимает. Создание запроса с объединением для лучшей группировки
- •На профессиональном уровне. Правильный выбор групп
- •Малоизвестная или недооцененная возможность. Помещение сводных таблиц в их собственные формы
- •Часть III
- •Глава 10. Создание отчетов
- •Глава 11. Проектирование сложных отчетов
- •Глава 10
- •На профессиональном уровне. Выполнение тяжелой работы с помощью запроса
- •Часто задаваемый вопрос. Добавление изображений в отчеты.
- •На профессиональном уровне. Учитесь любить pdf-файлы
- •Часто задаваемый вопрос. Разные способы экспорта данных
- •Малоизвестная или недооцененная возможность. Формат по образцу.
- •Практические занятия для опытных пользователей. Разные линии сетки
- •Глава 11
- •Часто задаваемый вопрос. Ошибки выражений
- •Часть IV
- •На профессиональном уровне. Поля типа Счетчик в формах
- •На профессиональном уровне. Разные люди — разные формы
- •Малоизвестная или, недооцененная возможность. Вывод на экран изображений из бд
- •На профессиональном уровне. Семейство форм Access
- •Глава 13
- •На профессиональном уровне. Присоединенные элементы управления
- •Малоизвестная или недооцененная возможность. Повторное применение ваших любимых настроек стиля границ
- •Часто задаваемые вопросы. Осовременивание элементов управления Windows
- •Практические занятия для опытных пользователей. Как освободиться от привязки к сетке
- •На профессиональном уровне. Насколько велик ваш экран?
- •Глава 14
- •Малоизвестная или недооцененная возможность. Варианты сортировки и просмотра в области переходов
- •На профессиональном уровне. Кнопочные формы с несколькими страницами
- •За кадром. Меню кнопочных форм сохраняются в бд
- •Часть V
- •На профессиональном уровне. Макросы по сравнению с программным кодом
- •Практические занятия для опытных пользователей. Обработка ошибок макроса
- •На профессиональном уровне. Макрокоманды, которым Access не доверяет
- •На профессиональном уровне. ОтправитьОбъект работает с вашей программой элекронной почты
- •Часто задаваемый вопрос. Внедренный макрос
- •Глава 16
- •Малоизвестная или недооцененная возможность. Справка по Visual Basic
- •Для тех кто понимает. Как код связывается с событиями
- •Малоизвестная или недооцененная возможность Разбиение длинных строк кода
- •На профессиональном уровне. Взаимодействие с другими формами
- •Практические занятия для опытных пользователей. Получение нужного цвета
- •Часто задаваемый вопрос. Ленточные формы и неприсоединенные элементы управления
- •Практические занятия для опытных пользователей. Связывание записей с рисунками
- •Глава 17
- •Практические занятия для опятных пользователей. Применение более сложных переменных
- •Практические занятия для опытных пользователей. Применение пользовательских функций в запросах
- •На профессиональном уровне. Алгоритм Луна (Luhn Algorithm)
- •Часто задаваемый вопрос. Запуск других Windows-программ
- •На профессиональном уровне. Станьте знатоком статистических функции по подмножеству
- •Уголок ностальгии. Dао против аdо
- •Часть VI
- •Для тех, кто понимает. Поиск места в сети для вашей бд
- •На профессиональном уровне Указание местонахождения в сети
- •Часто задаваемый вопрос. Как поведут себя старые версии Aсcess?
- •Аварийная ситуация. Мистическая ошибка “Файл уже используется”
- •Часто задаваемый вопрос. Когда не следует пользоваться форматом accde
- •Уголок ностальгии. Отмирание страниц доступа к данным
- •Практические занятия для опытных пользователей. Разделение таблиц для более безопасных корректировок
- •Уголок ностальгии. Защита с помощью рабочих групп упразднена
- •Глава 19
- •На профессиональном уровне. Sql Server и SharePoint: два частных случая
- •Сберегающая время подсказка. Копирование из одной бд в другую
- •На профессиональном уровне. Опасность дубликатов
- •Малоизвестная или недооцененная возможность. Экспорт отчетов
- •На профессиональном уровне. Более внимательный взгляд на теги
- •Глава 20
- •На профессиональном уровне. Важнейшие причины перехода на sql Server
- •Часто задаваемые вопрос. Можно ли доверять корпорации Microsoft?
- •На профессиональном уровне. Проекты Access по сравнению со связанными таблицами
- •0 Запросах
- •Для тех, кто понимает. Синтаксические различия
- •Глава 21
- •Часто задаваемый вопрос. Путаница, связанная с SharePoint
- •На профессиональном уровне. Установка SharePoint
- •На профессиональном уровне. Пять интересных инструментов программы SharePoint, которые стоит опробовать
- •Малоизвестная или недооцененная возможность.
- •Малоизвестная или недооцененная возможность. Представление таблицы данных Access
- •Малоизвестная или недооцененная возможность. Параметры списков SharePoint
Часть IV
Разработка пользовательского интерфейса с помощью форм
Глава 12. Создание простых форм
Глава 13. Проектирование сложных форм
Глава 14. Создание системы переходов
Глава 12
Создание простых форм
Итак, вы научились создавать таблицы, хранящие наши данные, запросы, извлекающие их, и отчеты, подготавливающие данные к печати. Вы также создавали запросы на изменение, автоматизирующие обновления большого объема информации. Но реальные пользователи вашей БД (вы или кто-нибудь другой) будут тратить большую часть времени на совершенно другую работу: ежедневное обслуживание БД.
Эта работа включает просмотр, редактирование и вставку информации. В реальных БД этот процесс идет непрерывно. Ежедневно сотрудники компании Cacophone Studios добавляют новых студентов, отдел обслуживания клиентов компании Boutique Fudge помещает новые заказы, а устроители средневековой свадьбы компании Gothic Wedding уточняют план рассаживания гостей за праздничным столом. Куклы-болванчики покупаются, адреса меняются, покупки регистрируются, тестовые результаты фиксируются, и ваши данные растут и эволюционируют.
Ежедневное техническое обслуживание БД можно проводить на листе данных (см. главу 3), но это не самый легкий способ. Несмотря на то, что лист данных содержит множество информации на ограниченном пространстве, его обычно трудно использовать, особенно новичкам, недавно работающим в программе Access. Лучшее решение — формы: специализированные объекты БД, облегчающие просмотр и редактирование информации в таблице.
Примечание
Помните о том, что при использовании программы Access в деловой среде разные люди пользуются вашей БД. Вы можете создать ее, но другим пользователям нужно иметь возможность применять ее для выполнения разнообразных задач — как правило, ввода данных и поиска сведений. Эти пользователи могут не так хорошо, как вы, знать программу Access.
Основные сведения о формах
Формы получили свое название от бумажных форм, которые заполняются людьми, когда под рукой нет компьютера. В зависимости от ситуации вы можете создавать в программе Access форму, которая напоминает форму, применяемую вашей компанией или организацией. Если вы работаете в банке, вы можете создать в Access форму, которая воспроизводит информацию, организованную так же, как в бумажной форме, применяемой клиентами. Такая организация данных облегчает копирование информации с бумаги в вашу БД. Но в большинстве случаев проектируемая вами форма не имеет аналога в реальной жизни. Такие формы создаются с нуля и используются для облегчения ввода данных.
Для того чтобы понять, почему формы — неотъемлемая часть почти всех БД, полезно рассмотреть слабые места листа данных. Далее перечислены некоторые характеристики, делающие формы предпочтительнее листов данных.
Улучшенная компоновки. На листе данных каждое поле занимает единственный столбец. Такая организация хороша для таблиц с небольшим числом столбцов. Если же таблица широка, она приводит к бесконечным прокруткам, необходимым для переходов к разным частям таблицы. В форме есть гарантия того, что нужные данные всегда находятся в поле зрения. Можно также использовать цвет, линии и изображения для разделения разных фрагментов содержимого.
Дополнительная информация. Вы можете включить в форму любой нужный вам текст, т. е. можно вставить пояснения, подсказывающие новичкам, какие данные следует предоставить. Можно также добавить вычисляемые данные — например, вычислить и отобразить стоимость всех покупок, сделанных клиентом, без необходимости создания кем-то отдельного запроса.
Связи таблиц. Во многих задачах требуется добавление записей в несколько связанных таблиц. Если новый клиент размещает заказ в БД Boutique Fudge, необходимо создать новую запись в таблицах Customers и Orders, а также одну или несколько записей в таблице OrderDetails. Форма позволяет выполнить всю эту работу в одном месте (при этом не нужно открывать два или три листа данных).
■ Кнопки и другие графические элементы. Формы поддерживают элементы управления: кнопки, ссылки, списки и другие полезные элементы пользовательского интерфейса, которые можно вставлять в форму. Пользователь, работающий с вашей БД, сможет впоследствии щелкнуть мышью кнопку и запустить связанную с ней задачу (например, открыть другую форму или напечатать отчет).
Хорошо спроектированные формы — то, что компьютерные асы называют внешним представлением (front end) БД. В БД, применяющей формы, можно редактировать данные, выполнять поиск и обеспечивать выполнение повседневных задач, не касаясь листа данных.
Создание простой формы
Как и в случае отчетов, программа Access предоставляет легкий и довольно развитый способ создания формы. Он позволяет создать действующую форму, основанную на таблице или запросе. Внимательный читатель может заметить, что этот процесс в той или иной степени подобен процессу генерации простого отчета. Далее описано его применение.
1. В области переходов выберите таблицу или запрос, которые хотите использовать для генерации формы.
Попробуйте применить таблицу Products из БД Boutique Fudge.
Примечание
Если форма создается для родительской таблицы, связанной с другими таблицами, в результате вы будете иметь дело с несколько иным типом формы. Если создается форма для таблицы Categories (родительской для таблицы Products), вы получите в итоге двухчастную форму, позволяющую просматривать и изменять записи категорий и связанные записи товаров в каждой категории. Подробнее применение форм со связанными таблицами рассматривается в главе 13.
2. Выберите на лентеСоздание → Формы → Форма (Create → Forms → Form).
На экране появляется новая вкладка с формой в Режиме макета. В простой форме одновременно отображается одна запись с выводом каждого поля в отдельной строке (рис. 12.1). Если в вашей таблице много полей, программа формирует несколько столбцов (рис. 12.2).
Рис. 12.1. В этой простой форме для таблицы Products уже присутствует разумная основа. Программа Access применяет поля ввода для всех текстовых полей, раскрывающийся список для полей с подстановкой (в данном примере поле ProductCategoryID) и флажок для всех полей с данными логического типа (например, поле Discontinued). В ней некоторые поля (например, Description) больше других, поскольку программа замечает, что у лежащего в основе поля таблицы допустимая длина больше максимально допустимой
Подсказка
Хорошие навыки проектирования очень пригодятся, когда вы начнете создавать формы. Если ваши тестовые поля созданы в расчете на хранение большего числа символов, чем им требуется (в соответствии со значением свойства Размер поля, описанного в разд. "Длина текста"
главы 2), форма будет содержать огромные поля ввода, съедающие значительное пространство. Придется изменять их размер вручную.
Рис. 12.2.В данной форме для таблицы Customers программа Access не может разместить все поля с помощью обычной компоновки, отводящей одну строку для каждого поля. В место этого добавлен еще один столбец
Когда форма создается впервые, программа Access располагает поля сверху вниз в том порядке, в каком они определены в таблице. Реорганизация полей на листе данных не играет никакой роли. Но программа не отображает в форме все столбцы, скрытые на листе данных (см. разд. "Скрытие столбцов " главы 3).
Подсказка
Вставляются поля в форму и удаляются из нее точно так же, как в отчете. Если окно Список полей не открыто, выберите на ленте Работа с макетами форм | Формат → Элементы управления → Добавить поля (Form Layout Tools | Formatting → Controls → Add Existing Fields). Затем перетащите в форму с помощью мыши нужное поле из окна Список полей. Для удаления поля щелкните его кнопкой мыши и нажмите клавишу <Delete>. Но помните о том, что часто формы применяются для добавления записей, и если вы хотите сохранить такую возможность, нужно, чтобы в вашей форме присутствовали все поля, необходимые таблице.
3. Расположите поля на форме, как хотите, перетащив их мышью в нужное место.
Несмотря на то, что простые формы выглядят иначе, нежели простые отчеты, с которыми вы познакомились в главе 10, работать с ними можно почти так же, как с отчетами. Самый легкий способ компоновки формы — перемещение полей из одного места в другое с помощью мыши (рис. 12.3).
4. Измените ширину столбцов.
Когда новая форма создается в Режиме макета, программа Access делает все поля достаточно широкими.
Рис. 12.3.Для перемещения поля перетащите его с помощью мыши в другое место. Программа Access переместит остальные поля соответственно. В данном примере поле Price переносится в верхнюю часть формы непосредственно под поле ProductName. Access отодвигает все остальные поля вниз для того, чтобы освободить место
Рис. 12.4. Увеличивается высота поля Description для размещения в нем большего числа строк. Можно также сделать поле уже или шире, но есть опасность — подобные действия влияют на весь столбец. В данной форме для таблицы Products у всех полей одинаковая ширина
Как правило, нужно сжать их для создания более компактной формы. Кроме того, длинные строки текста трудно читать, поэтому лучше отображать информацию большого объема в более узком и высоком текстовом поле.
Для этого выделите соответствующее поле щелчком кнопки мыши, вокруг него появится прямоугольный контур желтого цвета. Затем перетащите мышью одну из его сторон. На рис. 12.4 показан этот процесс в действии.
Примечание
Возможно, вам потребуются изменения, которые нельзя выполнить с помощью перетаскивания мышью, например, добавление нового столбца или задание разной ширины полей. Для внесения таких изменений необходимо понять, что такое макеты, описанные в разд. "Создание улучшенных макетов" далее в этой главе.
5. Если необходимо, можно щелкнуть кнопкой мыши имя поля и отредактировать его текст.
Эта возможность позволит изменить имя ProductCategoryID просто на Category.
6. При желании можно изменить форматирование для того, чтобы сделать форму более привлекательной, сменив гарнитуру и цвет шрифта.
Быстрее всего изменить формат вашей формы, если выбрать соответствующую часть (щелчком кнопки мыши) и использовать кнопки в группе ленты Работа с макетами форм | Формат → Шрифт (FontForm Layout Tools | Formatting → Font). Эту группу ленты можно также применять для настройки отображения программой Access числовых значений. Вы познакомились со всеми возможными вариантами форматирования в разд. "Форматирование столбцов и заголовков столбцов" главы 10, когда создавали базовые отчеты.
Часто возникает необходимость иначе отформатировать определенные поля для того, чтобы выделить важную информацию. Можно также задать формат заголовка формы, раздела заголовка и фон формы. На рис. 12.5 показан пример разумного форматирования полей.
Подсказка
Для одновременного выбора нескольких фрагментов формы держите нажатой клавишу <Ctrl>, когда щелкаете их кнопкой мыши. Этот прием позволяет задать одинаковое форматирование одновременно для нескольких частей.
Если торопитесь (или сомневаетесь в стилистическом оформлении), можно применить отличное средство Access, названное Автоформат, для внесения целого набора связанных изменений. Просто выберите вариант из группы ленты Работа с макетами форм | Формат → Автоформат (Form Layout Tools | Formatting → AutoFormat) (в которую включены те же варианты, которыми вы пользовались при оформлении отчетов).
7. Сохраните форму.
Форму можно сохранить в любой момент, если выбрать кнопку Office → Сохранить (Office → Save). Если вы закроете форму без сохранения, программа Access в этот момент предложит вам сохранить ее.
Рис. 12.5. Имя поля (например, Price) и поле со значением можно выделить по отдельности, что означает возможность различного форматирования этих компонентов. В этой форме задан затененный фон для полей Price, UnitsinStock и UnitsOnOrder. Кроме того, у поля Price и его имени увеличен размер шрифта, что позволяет выделить содержащуюся в них информацию