- •Часть 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
Уголок ностальгии. Защита с помощью рабочих групп упразднена
Опытные специалисты Access, может быть, помнят, что в предыдущие версии Access
была включена гораздо более полезная форма защиты на уровне пользователя, называемая защитой с помощью рабочих групп. Программа Access хранила отдельный файл, в котором определялось, что разрешено делать с БД каждому пользователю и группе. Такую защиту легче реализовать, чем защиту на уровне файлов, и она гораздо гибче. На самом деле она представляется прекрасным решением.
К сожалению, защита с помощью рабочих групп никогда не обеспечивала настоящей защиты. Для ее преодоления могли использоваться широко доступные программистские приемы. Чаще всего это не представляло серьезной проблемы, потому что специалисты Access по-настоящему не стремились остановить умелых хакеров. Они больше заботились о сохранении контроля над обычными пользователями.
Однако в последние годы корпорация Microsoft зациклилась на безопасности. Когда она готовила к выпуску Access 2007, было решено больше не поддерживать средство безопасности, которое на самом деле ненадежно, особенно когда в других программных продуктах, например, свободно распространяемой версии SQL Server, доступны лучшие механизмы. По этой причине корпорация Microsoft отказалась от поддержки безопасности с помощью рабочих групп в файлах с расширением accdb. Это средство все еще можно применять в более старых файлах с расширением mdb, но это стоит делать, только если вам нужно сохранить поддержку БД, которую вы проектируете, старой версией программы Access. Новые файлы всегда должны создаваться в формате accdb — помимо всего прочего, Access представляет его как формат будущего для БД.
Защита паролем
Защиту БД паролем программа Access предлагает как простое, без излишеств средство защиты. Вы выбираете единый пароль для вашей БД и с этого момента ее нельзя открыть без данного пароля. Более того, данные в вашей БД шифруются с помощью ключа, который генерируется из вашего пароля. Это гарантирует невозможность извлечения каких-либо данных, даже если технически грамотные хакеры сумеют пробраться непосредственно в файл БД с помощью специализированных средств.
Примечание
В Access 2007 защита паролем стала довольно серьезной. Программа применяет искусное шифрование, не позволяющее умелым хакерам взломать ваши файлы с помощью специальных средств — по крайней мере, не посвятив решению этой задачи довольно много времени.
Применить пароль до смешного просто. Вот как это делается.
1. Выберите кнопку Office → Открыть (Office → Open).
Для применения пароля следует открыть вашу БД монопольно. Этот шаг необходим, поскольку программа Access не может шифровать БД, пока она используется кем-то.
2. Выделите файл, который хотите открыть, щелкните мышью направленную вниз стрелку на кнопке Открыть (Open) и выберите строку Монопольно (Open Exclusive).
Программа откроет БД с монопольным доступом.
3. Выберите на ленте Работа с базами данных → Работа с базами данных → Зашифровать паролем (Database Tools → Database Tools → Encrypt with Password).
Access запросит пароль (рис. 18.14).
Рис. 18.14. Для большей уверенности программа Access попросит ввести пароль дважды
4. Введите пароль и щелкните мышью кнопку ОК.
Для того чтобы защитить вашу БД как следует, необходимо выбрать усиленный пароль. Хороши длинные пароли (10 символов или больше), такие, которые нельзя найти в словарях (хакеры используют словари для запуска автоматических атак) и содержащие специальные символы (например, цифры, знаки пунктуации и другие символы). Пароль hellodata — плохой выбор, пароль w0nDER_wh@t_32 гораздо надежнее.
Программа Access применяет пароль для шифрования вашей БД и затем автоматически сохраняет ее. Теперь при следующем открытии БД прежде всего программа запросит у вас пароль.
Если позже вы решите, что вам для защиты не нужен пароль, щелкните кнопкой мыши команду на ленте Расшифровать базу данных (Remove Database Password and Encryption).
Пароли и разделенные БД
Как пароли действуют в обычных БД, абсолютно понятно, но при работе с разделенными БД есть несколько интересных особенностей. Прежде всего, пароль всегда применяется для защиты серверной БД — в конце концов, защищать нужно именно данные, а не ваши формы и отчеты. Но тут есть интересная деталь: когда создается клиентская БД, которая связана с защищенной паролем серверной БД, программа Access спокойно сохраняет пароль в клиентской части. Это означает, что пока вы используете подходящую клиентскую БД, вам вообще не нужно вводить пароль.
Примечание
Для того чтобы с успехом пользоваться паролем для серверной БД, вы должны применить пароль до того, как разделите БД. В противном случае программа Access не сохранит пароль в клиентской БД, и связанные таблицы не будут функционировать.
С технической точки зрения эта модель не обеспечивает безопасности промышленного уровня, поскольку ловкий хакер сможет украсть пароль, пробравшись в файл клиентской БД. Но до тех пор, пока вы уверены в том, что ваши клиентские БД не попадут в чужие руки, можно воспользоваться несколькими интересными возможностями.
Можно сохранять пароль в тайне, что помешает пользователям обращаться к серверной БД напрямую. Вместо этого они должны полагаться на предоставленную вами клиентскую БД со встроенным паролем.
Клиентскую БД можно защитить другим паролем. В этом случае коварный хакер, крадущий пароль вашей клиентской БД, будет все равно отрезан от БД.
Можно разделить серверную БД на отдельные файлы. В этом случае каждому файлу можно присвоить свой пароль и помешать доступу пользователей к неподходящим таблицам. Если у их клиентской БД нет связи с нужной серверной БД, они не смогут использовать эти таблицы.
Применение защиты файлов ОС Windows
Защита паролем — не единственный доступный вам вариант защиты. Можно также использовать защиту ОС Windows для задания конкретных пользователей и групп, которые могут получить доступ к файлу.
Для выполнения этой работы необходимо разделить серверную БД на несколько файлов. Затем, после того как файлы размещены в папке с общим доступом, можно точно указать, кому разрешено обращаться к каждому из них. Надеюсь, что у вас есть администратор, готовый помочь вам. Базовый процесс выглядит следующим образом.
1. Используйте Проводник Windows, щелкните правой кнопкой мыши файл БД, который хотите защитить, и выберите строку Свойства (Properties).
На экране появится окно Свойства (Properties) с несколькими вкладками, содержащими информацию о файле.
2. Выберите вкладку Безопасность (Security) (рис. 18.15).
ОСWindows отслеживает пользователей двумя способами — она определяет каждого с помощью уникального имени пользователя и формирует группы пользователей с помощью имен групп. Например, вы можете зарегистрироваться как MarkНamlon и быть членом нескольких групп, включая группы Пользователи, Администраторы, ОтделПродаж и т. д. Это дает возможность администратору изменять параметры безопасности для отдельного пользователя или для группы людей с помощью единственного правила.
Рис. 18.15. На вкладке Безопасность перечислены все пользователи (и группы), которым разрешено использовать данный файл, и указано, что именно им разрешено делать. В данном примере все имена пользователей и групп начинаются с РС-12, поскольку имя компьютера, на котором определены учетные записи пользователей, — РС-12
3. Для того чтобы изменить для группы или пользователя набор действий над файлом, выберите их в списке и затем измените параметры Разрешить (Allow) или Запретить (Deny) (рис. 18.16).
Скажем, вы не хотите, чтобы люди из группы Пользователи (Users) имели доступ к этому файлу; выделите группу Пользователи в списке и установите флажки в столбце Запретить (Deny) для каждого разрешения.
Примечание
Параметры в столбце Запретить (Deny) всегда обладают более высоким приоритетом. Например, если пользователь — член двух групп и одной группе разрешено использовать файл, а другой нет, параметр Запретить (Deny) переопределяет что бы то ни было.
Рис. 18.16. Если флажок тускло-серый — значит, параметр наследуется, т. е. он основан на значении для папки, содержащей этот файл. Например, невозможно изменить параметры в столбце Разрешить для группы Пользователи, поскольку они наследуются. Но можно добавить установки в столбец Запретить (как показано для пользователя с именем Внешний пользователь). Установки в столбце Запретить всегда побеждают установки в столбце Разрешить
4. Если вы хотите добавить в список нового пользователя или группу, щелкните мышью кнопку Добавить (Add), задайте имя пользователя или группы и нажмите кнопку ОК.
Быть может, вы решите заблокировать не всю группу, а выделить конкретного пользователя.
Защита файлов ОС Windows предоставляет стандартный уровень защиты. Она разработана не для работы с БД Access. Для ее более полного использования придется делить вашу БД на все более и более мелкие части, которыми, может быть, трудно управлять. Вы также не можете управлять набором действий, которые разрешены пользователю, — защита файлов либо блокирует пользователей целиком, либо предоставляет им полный контроль над добавлением, удалением, обновлением и реорганизацией информации в вашей БД.
Если нужна действительная защита на уровне пользователя, вам больше подойдет серверный программный продукт, например, SQL Server. Если же просто необходимо помешать доступу к некоторой конфиденциальной информации, средства защиты файлов могут вас выручить.