- •Часть 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
Глава 20
Подключение Access к SQL Server
В главе 18 вы рассмотрели, как коллективно использовать вашу заслуживающую награды БД совместно с другими людьми. Для кого-то это блаженное состояние программы Access. Группы пользователей могут сотрудничать, бизнесмены — следить за ежедневным рабочим процессом и все трудятся с удовольствием ныне и присно. Для других многопользовательская поддержка БД — долгая головная боль, поскольку программа Access просто не в состоянии удовлетворить всех, кто хочет внести изменения в одно и то же время.
В этой главе вы познакомитесь с другим подходом, который позволяет преодолеть ограничения Access и совместно использовать ваши БД с гораздо более многочисленными группами пользователей, у которых появится возможность существенно повысить интенсивность такого использования. Для этого нужно подключить программу Access к SQL Server, мощной серверной БД корпорации Microsoft. (Вернитесь к разд. "Access или SQL Sewer?" во введении, чтобы вспомнить разницу между серверными и клиентскими БД.)
Такое объединение обеспечит максимум возможностей. Вы сможете применять сверхнадежный процессор БД (каковым является SQL Server) без отказа от удобного пользовательского интерфейса, облегчающего выполнение разнообразных задач (каковой является программа Access). Самое замечательное заключается в том, что можно начать использование версии SQL Server, не потратив ни рубля.
Нужно ли переходить на SQL Server?
Как вы уже знаете, нет общего правила для определения, кто может успешно использовать многопользовательскую поддержку, а кто нет. Вы познакомились с предельными характеристиками — компания Fortune 500 с тысячами сотрудников, вероятно, не сможет использовать многопользовательскую поддержку Access, а команда со штатом 5 человек, занимающаяся дизайном интерьера, не столкнется ни с какими проблемами — но для многих пользователей следует учитывать множество факторов.
Успех коллективного использования зависит от того, сколько пользователей нуждаются в одновременном внесении изменений, какова тенденция изменения объема обновлений, как долго записи остаются в режиме редактирования и каков общий объем хранимых данных (например, огромными полями типа Memo и Вложение в многопользовательской БД управлять гораздо труднее, чем текстовыми и числовыми полями).
Некоторые факторы находятся вне пределов досягаемости программы Access — например, медленная или ненадежная сеть компании — что может разрушить коллективное использование БД. В разд. "Как действует многопользовательская поддержка в Access" главы 18 дано несколько важных признаков, позволяющих определить, когда многопользовательской
поддержки недостаточно. Однако если БД Access устанавливается для маленькой компании, возможно, следует самостоятельно протестировать режим коллективного использования БД.
Если вы впервые сталкиваетесь с многопользовательским применением БД, некоторые характерные симптомы предупредят вас о том, что БД не справляется. Далее перечислены некоторые ключевые признаки опасности.
Ваши корректировки часто перекрываются с чьими-то еще. В этой ситуации программа Access каждый раз запрашивает, как устранить конфликт (см. разд. "Обработка конфликтов редактирования" главы 18). Это самая распространенная проблема, и хотя она не разрушит вашу БД, конфликтующие корректировки могут привести к тому, что ваши изменения будут постоянно искажаться или стираться кем-то, одновременно с вами обращающимся к БД.
Вы не можете редактировать нужные вам записи. Эта проблема возникает, когда программа Access применяет блокировки (см. разд. "Применение блокировок для предотвращения наложения обновлений" главы 18) для предотвращения одновременных изменений. Блокировки позволяют Access избежать проблем наложения корректировок, но за это приходится платить. Вся остальная обработка, использующая заблокированную запись, полностью прерывается. И снова эта ситуация не очень опасна — как последствия от приема тройной дозы аспирина.
Данные повреждаются. Эта ситуация одновременно и не столь частая, и очень серьезная. Несмотря на редкость ее возникновения (она становится все реже с каждым выходом новой версии программы Access), иногда она все еще случается. Вы понимаете, что у вас появилась проблема, когда в поле оказываются искаженные данные или когда Access выводит нелепое сообщение об ошибке (например "Слишком много индексов" ("Too many indexes")) при попытке открыть объект БД. В разд. "Повреждение данных" главы 18 дается объяснение проблемы и несколько советов, как ее обезопасить.
Примечание
Порча данных может произойти не по вине программы Access. Например, если у некоего сотрудника пропало сетевое соединение в середине процесса сохранения изменения, Access может оставить БД с многопользовательской поддержкой в неопределенном или противоречивом состоянии. Единственный способ предотвращения подобных проблем — применение мощной программы управления БД, работающей на сервере, которая выполняет всю работу. (Именно эта идея лежит в основе SQL Server. Когда используется SQL Server, никто не изменяет БД непосредственно. Вместо этого пользователи создают вежливые запросы к постоянно работающему процессору БД SQL Server, который затем делает эту работу безопасным и контролируемым образом.)
Итак, что же делать, если выяснилось, что многопользовательская поддержка не дает нужных результатов? Самый лучший вариант — использовать мощную серверную программу управления БД, как SQL Server. Применение SQL Server, несомненно, добавит сложностей (вы потратите больше времени на се установку и проверку и наладку ее работы), но она обеспечит нерушимую поддержку безопасного и эффективного совместного использования БД.
Как работает SQL Server
Прежде чем вступить на территорию SQL Server, необходимо узнать немного больше о принципах работы этой программы. На рис. 20.1 показано взаимодействие программ SQL
Server и Access. В данном примере есть несколько пользователей, одновременно обращающихся к БД SQL Server, причем каждому из них на помощь приходит собственная копия программы Access.
Примечание
Это реальный принцип работы серверных БД, включая конкурирующие программные продукты, такие как Oracle и DB2. Однако у других БД нет отличной интеграции с программой Access, о которой вы узнаете в этой главе, поэтому клиентам приходится использовать другую клиентскую БД (обычно специально разработанное приложение).
Рис. 20.1. SQL Server хранит БД с таблицами (и иногда запросами). БД Access играет роль клиентской части, содержащей все остальные объекты других типов (отчеты, формы, макросы и модули программного кода)
Данный рисунок может показаться знакомым — в конце концов, в той или иной степени он напоминает принцип действия многопользовательской поддержки в Access. Каждый пользователь получает копию клиентской БД с формами и отчетами, а серверная БД (действительно хранящая данные) находится на другом компьютере (сервере) и доступна всем.
Но есть и существенная разница. На территории SQL Server у отдельных клиентских БД меньше работы. Вместо самостоятельной модификации БД они связываются с программой SQL Server (которая не что иное, как Windows-программа, работающая в фоновом режиме на серверном компьютере). По сути, вы переводите программу Access на менее квалифицированную работу, понижаете в должности. Теперь она отвечает за привлекательный внешний вид, макросы и распечатки, но освобождена от действительно тяжелой работы (добавления, удаления и обновления записей).