Благодарности
Предисловие
Об авторах

Введение Глава 1. Новые возможности Access 2000
Краткая история Access
Access 2000 — лучшая из версий
Доступ к данным в Access 2000
Работа с Internet и intranet в Access 2000
Access 2000 VBA
Формы и отчеты Access 2000
Другие усовершенствования Access 2000
Особенности Microsoft Office Developer

Глава 2. Разработка многопользовательских
приложений Jet
Технологии построения многопользовательских
приложений
Отделение данных от приложения
Управление связанными таблицами
Интеграция связанных таблиц в приложение
Многопользовательские установки
Режимы открытия базы данных
Период обновления
Уровень блокировки
Оптимистическая и пессимистическая блокировка
Блокировка и формы
Оптимистическая блокировка в формах
Оптимистическая блокировка с пользовательской
обработкой ошибок
Пессимистическая блокировка в формах
Пессимистическая блокировка и тайм-аут
Класс LockTimeout
Реализация тайм-аута блокировки в форме
Блокировка и наборы записей
Наборы записей DAO
Многопользовательские ошибки DAO
Реализация цикла повторных попыток доступа
к данным посредством DAO
Наборы записей ADO
Реализация цикла повторных попыток доступа
к данным посредством ADO
Обработка транзакций
Транзакции и DAO
Транзакции и ADO
Обработка транзакций в многопользовательских
приложениях
Неявные транзакции
Запросы на выполнение и транзакции в
многопользовательской среде
Свойство FailOnError
Использование собственного генератора значений
поля счетчика
Как организовать свой счетчик
Как генерировать значения
Списки пользователей и контроль подключения
Список пользователей
Контроль подключения
Несколько замечаний напоследок
Защита
Пропускная способность сети
Тестируйте, тестируйте и еще раз тестируйте!

Глава 3. Разработка приложений клиент/сервер
Сравнение клиент-серверных и файл-серверных систем
Преимущества архитектуры клиент/сервер
Сравнение ODBC и OLE DB
Обзор методов доступа к данным
Ключевые отличия клиент-серверных систем от
файл-серверных
Надежность и защита данных
Обработка транзакций и целостность данных
Соображения производительности
Системный менеджмент
Уникальные возможности сервера
Понятие OLE DB
Компоненты OLE DB
Взаимодействие с провайдерами
OLE DB через ADO
Понятие ODBC
Создание подключения ODBC
Обработка запросов
Источники записей
Конфигурирование ODBC
Источники данных ODBC
Запуск администратора ODBC
Создание источника данных
Доступ к серверным данным
Использование запроса Jet
Использование SQL-запроса к серверу
Непосредственное выполнение запросов с
помощью ADO
Использование ODBCDirect
Какую технологию выбрать
Настройка ODBC для вашей системы
Настройка подключения к базе данных на сервере
Редактирование данных ODBC
Хорошо ли вы знаете свой сервер
Разработка эффективных приложений клиент/сервер
Выделение транзакций
Использование локальных таблиц
Разработка эффективных запросов
Разработка форм
Выбор связанных и свободных полей
Выбор подходящей структуры формы
Несвязанная главная форма и связанная подчиненная
Использование динамических источников данных
Несвязанные элементы управления в заголовке
и примечании формы
Использование метода FindFirst
Разработка отчетов
Группировка и сортировка
Выбор источников данных для полей
Создание полей и выражений для верхнего и
нижнего колонтитулов
Диаграммы
Проблемы перехода на платформу клиент/сервер
Необновляемые запросы
Преобразование условий проверки
Функции, определенные пользователем
Счетчики, мемо-поля и поля OLE
Списки и поля со списками
Трассировка запросов Jet и ODBC
Знакомство с SQL Profiler
Мониторинг запросов Jet и ODBC
Повышение производительности приложения

Глава 4. Создание баз данных SQL Server
Версии SQL Server
SQL Server Enterprise Edition
SQL Server Standard Edition
SQL Server Desktop Edition
MSDE
Создание проектов Access
Подключение к существующей базе данных
SQL Server
Microsoft SQL Server Database Wizard
Upsizing Wizard
Утилита импорта и экспорта
Создание таблиц и индексов
Использование конструктора таблиц
Знакомство с типами данных SQL Server
Ограничения на параметры таблиц
Создание представлений
Конструирование представления
Панель SQL
Инструкция SQL Server SELECT
Создание схем баз данных
Другие объекты SQL Server
Правила
Значения по умолчанию
Пользовательские типы данных
Управление базами данных SQL Server из Access

Глава 5. Создание хранимых процедур и триггеров
Преимущества хранимых процедур
Создание хранимых процедур
Синтаксис хранимых процедур
Понятие параметров и переменных
Параметры
Выполнение хранимых процедур
Выполнение хранимой процедуры из окна базы
данных Access
Вызов одной хранимой процедуры из другой
Выполнение хранимой процедуры из запроса к серверу
Выполнение хранимой процедуры с помощью ADO
Выполнение хранимых процедур из DAO
Использование операторов управления потоком
Transact-SQL
Оператор BEGIN...END
Комментарии
Оператор GOTO
Оператор IF...ELSE
Оператор PRINT
Оператор SET NOCOUNT
Оператор WAITFOR
Операторы WHILE, BREAK и CONTINUE
Использование встроенных переменных, функций
и процедур
Системные переменные
Встроенные функции
Системные хранимые процедуры
Объединение операций в транзакции
BEGIN TRANSACTION
COMMIT TRANSACTION
ROLLBACK TRANSACTION
Как определить, успешно ли прошла транзакция
Создание триггеров
Синтаксис триггеров
Таблицы inserted и deleted
Транзакции и оператор RAISEERROR
Как проверить, обновлен ли столбец
Использование хранимых процедур для реализации
каскадного обновления и удаления записей

Глава 6. Использование ActiveX Data Objects с
серверными данными
Объектная модель ADO
Создание подключений
Создание подключения к серверной базе данных
Использование свойства СurrentProject.Connection
Использование объекта Command
Свойства и методы объекта Command
Метод Execute
Выполнение хранимых процедур
Входные и выходные параметры хранимых процедур
Использование подготовленных инструкций
Создание серверных наборов записей
Создание наборов записей на основе хранимых
процедур
Взаимодействие свойств набора записей
Пессимистическая блокировка
Управление параллельной работой пользователей
Использование связанных форм
Обработка событий ADO
Обработка событий ADO
Пример
Обработка ошибок
Использование семейства Errors

Глава 7. Разработка приложений ADP
Использование форм в проектах Access
Изменения пользовательского интерфейса форм
Новые и измененные свойства форм
InputParameters
MaxRecords
MaxRecButton
UniqueTable и ResyncCommand
ServerFilterByForm и ServerFilter
RecordsetType
Чего больше нет
Обновление данных
Использование транзакций в связанных формах
Оптимизация форм
Использование отчетов в проектах Access
Новые свойства отчетов
Блокировка записей
Использование несвязанных форм
Использование таблицы
резервирования

Глава 8. Защита приложений
Основы системы защиты Jet
Защита на основе рабочих групп
Пароли баз данных
Защита Jet на уровне рабочих групп
Составляющие системы защиты
Активизация защиты Jet
Рабочие группы Jet
Создание новой рабочей группы
Присоединение к рабочей группе
Учетные записи пользователей и групп Jet
Идентификаторы PID и SID, пароли
Группы — это не просто объединения пользователей
Особый статус: встроенные учетные записи
Предоставление разрешений Jet
Объекты и разрешения
Разрешения на новые объекты
Явные и неявные разрешения
Защита модулей
Кто может изменять разрешения
Какова судьба разрешений удаленной учетной записи
Владельцы объектов в системе защиты Jet
Кто владеет базой данных
Кто владеет объектами базы данных
Запросы OwnerAccess
Шифрование баз данных Jet
Программирование защиты Jet
Управление защитой с помощью DAO
Управление учетными записями с помощью DAO
Программирование разрешений с помощью DAO
Управление защитой с помощью ADOX
Управление учетными записями с помощью ADOX
Программирование разрешений с помощью ADOX
Управление системой защиты Jet с помощью SQL
Управление учетными записями с помощью SQL
Программирование разрешений с помощью SQL
Выбор между DAO, ADOX и SQL
Защита баз данных Jet с помощью мастера защиты
Access 2000
Снятие защиты с базы данных Jet
Преобразование защищенных баз данных Jet
в формат Access 2000
Защита Jet и связанные таблицы
Защита проектов Access (ADP)
Обзор системы защиты SQL Server
Управление защитой SQL Server из проекта Access
Схемы аутентификации
Управление учетными записями, пользователями и
ролями SQL Server
Защита объектов SQL Server

Глава 9. Репликация
Репликация Jet: что это такое и как она работает
Репликация
Синхронизация
Устранение конфликтов
Зачем нужна репликация
Локальные сети
Глобальные сети
Сети с эпизодическими подключениями
Другие случаи применения репликации
Средства репликации
Репликация с помощью Портфеля Windows
Управление репликацией посредством меню Access
Программирование репликации с помощью объектов
доступа к данным
Программирование репликации с помощью JRO
Диспетчер репликации
Топология репликации
Топологии репликации в локальных сетях
Топологии репликации в глобальных сетях
Расположение основной реплики
Изменения, вносимые в базу данных в ходе ее
репликации
Новые таблицы
Изменения в таблицах
Другие изменения
Репликация базы данных
Решения, принимаемые перед репликацией
Видимость реплик
Частичные реплики
Реплики с запрещенным удалением
Репликация базы данных с помощью команд Access
Репликация базы данных с помощью диспетчера
репликации
Репликация базы данных с помощью JRO
Частичная репликация
Создание пустой частичной реплики
Определение фильтров для частичной реплики
Фильтры таблиц
Заполнение частичной реплики
Пример частичной реплики
Предотвращение репликации
Обращение репликации
Синхронизация реплик
Синхронизация с помощью меню Access
Синхронизация с помощью диспетчера репликации
Синхронизация с помощью JRO
Синхронизация с учетом интенсивности обновлений
Синхронизация частичных реплик
Синхронизация по Internet/intranet
Управление конфликтами
Устранение конфликтов на уровне строк и столбцов
Приоритет реплики и устранение конфликтов
Типы конфликтов
Утилита Microsoft Replication Conflict Viewer
Создание пользовательской функции для
устранения конфликтов  с помощью JRO
Другие аспекты репликации
Запросы
Преобразование набора реплик к формату новой
версии Access
Удаление реплики из набора
Переназначение основной реплики набора
Восстановление основной реплики
Перемещение реплик
Связанные таблицы
Вопросы защиты
Сжатие реплик
Репликация SQL Server
Режимы репликации SQL Server
Настройка объединяющей репликации с базой
данных Jet в качестве подписчика
Работа с подписчиками Jet
Синхронизация баз данных Jet и SQL Server
Устранение конфликтов объединяющей репликации
Глава 10. Создание страниц доступа к данным
Страницы доступа к данным
Возможности, предоставляемые страницами доступа
к данным
Анализ данных
Просмотр данных
Ввод и редактирование данных
Создание страниц доступа к данным
Простейший способ
Использование ярлыков новых
объектов в окне базы данных
Управление данными, представленными на странице
доступа к данным
Самостоятельное создание страницы средней
сложности
Работа с элементами управления
Свойства элементов управления
Элемент управления Record Navigation
Дополнительные возможности управления данными
Управление страницами доступа к данным
Размещение станиц доступа к данным
Импорт страниц доступа к данным
Удаление страницы доступа к данным
Распространение страниц доступа к данным
Связь между файлами и данными
Одновременное восстановление ссылок обоих видов

Глава 11. Разработка сценариев страниц доступа к
данным
Хорошие и плохие новости
Microsoft Script Editor
Основные компоненты Microsoft Script Editor
Редактирование страницы в Microsoft Script Editor
Дополнение страницы кодом сценария
Просмотр страницы
Отладка страницы
Клиентские и серверные сценарии
VBScript и VBA
Использование оператора Option Explicit
Работа с объектами страниц доступа к данным
Объектная модель документов
Объектная модель документов IE 5
Элемент Data Source
Понятие событий страниц доступа к данным
Аргументы обработчиков событий
Использование в сценариях свойств и методов
объектов страницы
Проверка вводимых данных
Выбор события
Страница dapCustomer
Динамические стили и всплывающие события
Объект Style
Объект Event и всплывающие события
Страница dapSwitchboard
Фильтрация данных
Удаление фильтра
Редактирование данных с помощью серверных
фильтров
Клиентские и серверные фильтры
Страница dapOrderAndDetail
Вывод страницы dapOrder
Вывод страницы dapOrderDetail
Добавление элементов в список
Свойство Connection элемента Data Source
Страница dapOrderDetail

Глава 12. Использование Web-компонентов Office
Что мы имеем
Компонент  Spreadsheet
Компонент PivotTable
Компонент Chart
Компонент Data Source
Где и кем могут использоваться
Web-компоненты Microsoft Office
Использование невизуальных Web-компонентов
Microsoft Office
Свойство  Constants
Работа с компонентами во время разработки
Управление Web-компонентами Microsoft Office
посредством VBA
Компонент Spreadsheet
Использование компонента Spreadsheet
Работа с компонентом Spreadsheet
Программное управление компонентом Spreadsheet
Работа с Spreadsheet без пользовательского
интерфейса
Компонент  PivotTable
Знакомство с компонентом PivotTable
Программное управление компонентом Office PivotTable
Работа с объектом PivotView
Сохранение установок компонента PivotTable
Что вам нужно знать о компоненте
Data Source
Сохранение XML-данных
Восстановление XML-данных
Попробуйте и убедитесь!
Компонент Microsoft Office Chart
Создание простой связанной диаграммы
Терминология диаграмм
Программное управление компонентом Chart
Обработка событий диаграмм

Глава 13. Использование Access в качестве
Web-клиента
Что такое гиперссылки
Анатомия гиперссылок Access
Создание гиперссылки Access: трудный способ
Создание гиперссылки Access: простой способ
Где искать гиперссылки
Гиперссылки в полях таблиц
Гиперссылки в элементах управления
Гиперссылки в отчетах
Использование гиперссылок для навигации по базе
данных
Управление гиперссылками с помощью VBA
Свойства объекта Hyperlink
Метод AddToFavorites
Методы Follow и FollowHyperlink
Метод CreateNewDocument
Метод HyperlinkPart
Использование элемента управления Microsoft
Web Browser

Глава 14. Публикация данных Access в Web
Публикация данных Access с использованием
диалогового окна Export
Выбор формата публикации
Публикация объектов
Публикация страниц в HTML- формате
Публикация отчетов
Публикация в формате ASP
Настройка Web-сервера для публикации ASP-страниц
Использование шаблонов
Использование метода OutputTo
Программирование ASP-страниц
Выбор инструментария
Просмотр ASP-страниц, созданных вручную
Анатомия ASP-страницы
Сценарии ASP
Что видит броузер
Отправка информации обратно броузеру
VBScript
Автоматически выполняющиеся сценарии и процедуры
Директива Option Explicit
VBScript и VBA
Объектная модель ASP
Отправка информации броузеру с помощью объекта
Response
Получение информации с помощью объекта Request
Использование семейства QueryString
Создание глобальных переменных с помощью
объекта Application
Управление состоянием приложения с помощью
объекта Session
Расширение возможностей ASP-страниц с помощью
объекта Server
Использование внешних файлов
Создание ASP-страниц, управляемых данными
Пример CustomerTable.asp
Добавление записей в таблицу базы данных
Извлечение из базы данных нужной записи
Перемещение по набору записей
Разбивка набора записей на страницы
Использование на ASP-страницах компонентов
Microsoft Office Web Components
Использование компонента Spreadsheet в сценарии
ASP-страницы
Диаграмма Chart на ASP-странице

Глава 15. Управление исходным кодом
Что такое управление исходным кодом
Провайдер средств управления исходным кодом
Проекты и исходные файлы
Контроль получения и возврата файлов
Совместная работа с файлами и слияние изменений
Синхронизация
Сравнение версий и восстановление предыдущих
версий файлов
Поддержка управления исходным кодом в Access 2000
Надстройка для управления исходным кодом
Процесс разработки приложения с использованием
функций SCC
Обмен объектами
Правила получения и возврата объектов
Локальные объекты
Локальное хранение исходных файлов
Настройка управления исходным кодом
Изменение объектов, используемых для
управления исходным кодом
Ограничения технологии управления исходным кодом
Использование
Microsoft Visual SourceSafe\r
Настройка программного обеспечения SCC
Создание учетных записей пользователей Visual
SourceSafe
Как работать с Visual SourceSafe
Работа с VSS из Access 2000
Перевод базы данных под управление
программного обеспечения SCC
Создание рабочей копии базы данных из проекта VSS
Работа с объектами в проекте VSS
Управление
Visual SourceSafe из
VBA\r
Объектная модель Visual SourceSafe
Методы Access, связанные с управлением
исходным кодом
Форматы текстовых файлов
объектов
Глава 16. Установка и настройка приложений
Понятие об Access Runtime\r
Архитектура
Access Runtime
Технология
Microsoft Windows Installer\r
Windows Installer SDK
Разбиение приложения на компоненты
Использование свойства FeatureInstall
Восстановление и переустановка компонентов
Утилита
Windows Installer Clean Up
Интерфейс автоматизации
Windows Installer\r
Объектная модель
Windows Installer
Получение информации о продуктах
Получение информации из базы данных Windows Installer
Мастер
Package and Deployment Wizard\r
Использование
Package and Deployment Wizard
Тестирование программы установки
Советы и полезные приемы
Установка проектов Access
Модификация программы установки
Ключи
Windows Installer\r
Редактирование файлов Windows Installer\r
Таблицы базы данных Windows Installer
Общие цели редактирования
Редактирование пакетов установки Windows Installer
Распространение страниц доступа к данным

Приложение A. Соглашения о наименовании
Реддика для VBA (Версия 6.0)

Приложение Б. Версия VBScript для VBA

Предметный указатель