- •Часть 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
Практические занятия для опытных пользователей. Изменение параметров подтаблицы
Вы можете отрегулировать несколько дополнительных параметров, влияющих на способ отображения в таблице ваших подтаблиц. Для вывода на экран этих параметров переведите таблицу в Конструктор. Затем выберите на ленте Работа с таблицами │ Конструктор → Показать или скрыть → Страница свойств (конечно, если эта страница не видна в данный момент). Страница свойств отображается в правой части окна.
На ней есть набор разнообразных параметров, которые применяются к таблице в целом. Далее перечислены те из них, которые относятся к подтаблицам.
Имя подтаблицы (Subdatasheet Name). Связанная таблица, применяемая в качестве подтаблицы. Если у вас несколько связанных таблиц, можно выбрать ту, с которой вы хотите работать. Или установить значение параметра (Auto), которое заставит программу Access спросить у вас имя подтаблицы в следующий раз, когда вы щелкните кнопкой мыши квадратик со знаком плюс, как показано на рис. 5.9.
Высота подтаблицы (Subdatasheet Height). Задает высоту в дюймах, отводимую подтаблице для отображения данных. Если все связанные строки не помещаются в отведенное пространство, вам придется пользоваться полосой прокрутки. Стандартное значение этого параметра — 0, позволяющее подтаблице занять столько места, сколько ей нужно.
Развернутая подтаблица (Subdatasheet Expanded). Позволяет выбрать вывод свернутых подтаблиц до тех пор, пока вы не щелкните кнопкой мыши по квадратику с плюсом (значение по умолчанию), или задать автоматическое раскрытие подтаблицы при открытии основной таблицы (для этого надо выбрать значение Да).
Поиск в связанных таблицах
Итак, вы увидели, как связи облегчают просмотр и редактирование ваших записей. А как они помогают при первоначальном добавлении записи? Связи обычно основываются на бесполезном значении типа Счетчик. Когда вы создаете новую запись о кукле, то, возможно, не знаете, что компании Bobelle House O'Dolls соответствует код 3408. Программа Access не даст вам ввести идентификационный номер изготовителя, не связанный ни с одной компанией-изготовителем, но не поможет выбрать нужный номер.
К счастью, у Access есть средство, способное помочь вам. В предыдущей главе вы узнали о подстановках (см. разд. "Создание простою списка подстановок, состоящего из констант" главы 4), функциональной возможности, снабжающей вас списком доступных значений столбца. При создании подстановки можно представить список констант или предложить список значений из другой таблицы. Вы могли бы создать подстановку для поля ManufacturerlD в таблице Dolls, использующую список значений ID, взятых из таблицы Manufacturers. Такой тип подстановки немного помогает — он предлагает список всех значений, которые можно использовать — но не решает главную проблему. А именно озадаченные пользователи, применяющие вашу БД, понятия не имеют о том, какой идентификационный номер принадлежит какой компании. Вам все-таки нужен способ отображения в списке подстановок имени изготовителя.
У списков подстановок, к нашей общей радости, есть такая возможность. Решение — создание подстановки, у которой несколько столбцов. Один столбец содержит информацию (в данном случае имя изготовителя), которая выводится для пользователя вашей БД. В другом столбце находятся данные, которые вы хотите использовать при выборе значения (в данном случае идентификационный номер изготовителя).
Примечание
Программа Access становится немного странной при переходе к подстановкам. Она ждет, что вы добавите список подстановок, а потом связь. (В действительности, когда создается подстановка, использующая таблицу, Access создает связь автоматически.) Таким образом, если вы
самостоятельно выполняете практические задания, используя предложенные примеры, удалите связь между таблицами Dolls и Manufacturers (как описано в разд. "Редактирование связей" ранее в этой главе), прежде чем двигаться дальше.
Далее приведены действия, необходимые для создания списка подстановок, связывающего две таблицы — Dolls и Manufacturers.
Откройте таблицу-потомок в Конструкторе. В данном примере это таблица Dolls.
Выберите поле, связывающее ее с таблицей-родителем, в столбце Тип данных выберите вариант Мастер подстановок.
В предлагаемом примере поле, которое вам нужно, — ManufacturerID.
3. Выберите переключатель Объект "столбец подстановки" будет использовать значения из таблицы или запроса ("I want the lookup column to look up the values in a table or query") и щелкните мышью кнопку Далее.
На экране появится список всех таблиц вашей БД за исключением текущей таблицы.
4. Выберите таблицу-родитель и нажмите кнопку Далее.
В данном случае вам нужна таблица Manufacturers. После того как вы ее выбрали и перешли к следующему окну мастера, вы увидите на экране список всех полей этой таблицы.
5. Добавьте поле, которое используется для связи, и еще одно, более информативное поле в список Выбранные поля (Selected Fields) (рис. 5.11). Для продолжения щелкните мышью кнопку Далее.
Вданном примере вам нужно добавить поляID и Manufacturer.
Рис. 5.11. Секрет хорошей подстановки — выбор двух порций информации, первичного ключа (в данном случае поля ID) и более информативного значения (названия компании-изготовителя). Данные из поля ID вы должны сохранить в записи о кукле, а значение поля Manufacturer вы отобразите в списке подстановки для того, чтобы облегчить правильный выбор компании-изготовителя
Подсказка
Иногда может понадобиться несколько полей для описательной информации. Например, можно использовать поля FirstName и LastName из таблицы FamilyRelatives (члены семьи). Но не включайте слишком много информации, иначе список подстановки станет необъемным из-за включений в него всех этих сведений. Это выглядит неестественно.
6. Выберите поле, применяемое для сортировки списка подстановки (рис. 5.12), и щелкните мышью кнопку Далее.
В нашем примере список подстановки лучше всего отсортировать в соответствии со значениями поля Manufacturer.
Рис. 5.12. Отсортировать список подстановки очень важно для того, чтобы пользователь мог быстро найти нужное значение
В следующем окне мастера показано предварительное представление вашего списка подстановки (рис. 5.13). Убедитесь в том, что установлен флажок Скрыть ключевой столбец (Hide key column (recommended)), и затем щелкните мышью кнопку Далее. Несмотря на то, что у поля первичного ключа есть значение, связывающее вместе две таблицы, для пользователя, работающего с БД, оно значит не слишком много. Ему гораздо важнее другое, описательное поле.
Выберите название столбца подстановки.
Обычно естественней всего сохранить название поля, использующего подстановку (в данном случае ManufacturerID).
На последнем этапе вы можете также выбрать режим, называемый Разрешить несколько значений (Allow Multiple Values). Если установить этот флажок, в списке отображается флажок рядом с каждым значением, поэтому можно одновременно выбрать несколько элементов списка. (В этом примере можно создать запись о кукле с несколькими изготовителями.) Вы узнаете больше о варианте Разрешить несколько значений в разд. "Многозначные поля "далее в этой главе.
Рис. 5.13. Здесь показан список подстановки, содержащий имя изготовителя (поле Manufacturer) и скрывающий его идентификатор (поле ID)
9. Щелкните мышью кнопку Готово (Finish).
Теперь программа Access формирует список подстановки для поля и предлагает сохранить таблицу. После этого Access создает связь между двумя таблицами, связанными вашим столбцом подстановки. В данном случае программа устанавливает отношение "родитель—потомок" между таблицами Manufacturers и Dolls, так же как вы делали это самостоятельно (см. разд. "Определение отношения "ранее в этой главе).
Примечание
Созданная программой Access связь не обеспечивает ссылочной целостности, поскольку программа не знает, соответствуют ли ваши записи этому жесткому стандарту. В таблице может быть кукла, указывающая на несуществующего изготовителя. Если такая возможность кажется угрожающе нестрогой, можно отредактировать связь с помощью вкладки Схема данных (как описано в разд. "Редактирование связей" ранее в этой главе). Начните с добавления на вкладку обеих таблиц Dolls и Manufacturers. Затем щелкните правой кнопкой мыши линию связи между ними и выберите команду Изменить связь. В заключение установите флажок Обеспечение целостности данных и щелкните мышью кнопку ОК.
Теперь, если отобразить таблицу Dolls в Режиме таблицы, можно использовать список подстановки во время редактирования и вставки записей (рис.5.14).