Введение
Часть I. Разработка баз данных

Глава 1. Новые возможности разработки в Access 2000
Новый пользовательский интерфейс
Изменения в VBE
Страницы доступа к данным
Подтаблицы
Автоматическая коррекция имен
ADO как метод по умолчанию для доступа к данным
Сотрудничество в режиме online
Access как внешний интерфейс SQL-сервера
Резюме

Глава 2. Планирование процесса разработки
Сбор и анализ требований
Почему знание требований настоль важно?
Поиск реальной проблемы
Анализ потребностей заказчика
Диаграммы процесса
Определение области применения проекта
Запись требований
Архитектура
Планирование разработки
Стратегия создания приложения
Стиль
Стандарты
Стандарты использования имен
Стандарты написания кода
Построение
Разделяй и властвуй: логика построения
Варианты и выпуски приложения
Детальная разработка
Анализ и обсуждение разработки
Реализация
Анализ реализации
Тестирование
Поиск дефектов
Контроль версий
Резюме

Глава 3. Проектирование и нормализаци баз данных
Системы управления реляционными базами данных
Правила построения систем управления реляционными базами данных д-ра Кодда
Теория проектирования реляционных баз данных
Преимущества использования реляционной модели
Таблицы и уникальные объекты
Внешние ключи и домены
Отношения
Нормализация данных
Правила обеспечения целостности данных
Резюме

Глава 4. Усовершенствованные запросы
Запросы в Access 2000
Создание запросов с дополнительными возможностями
Использование объекта запроса
Свойства запроса
QBE Grid (Конструктор запросов)
Область таблиц
Добавление таблицы или запроса в области таблиц
Установка отношений в области таблиц
Query Grid (Бланк запроса)
Помещение полей в бланк запроса
Задание порядка сортировки, отображения результатов и критериев
выбора запроса
Изучение Totals Query (Итоговый запрос)
Статистическая функция Count
Статистическая функция Avg
Статистические функции Min и Мах
Статистические функции First и Last
Статистические функции StDev и Var
Функция Expression (Выражение)
Конструкция Where (Условие)
Использование Crosstab Query
(Перекрестный запрос)
Использование Parameter Query
(Запрос с параметрами)
Создание параметров запроса в режиме конструктора
Определение параметров запроса в коде приложения
Сравнение возможностей режима конструктора и непосредственного
кодирования для создания
параметризированных запросов
Выполнение параметризованного запроса в приложении
Выполнение запроса с использованием коллекции параметров
Pass-Through Query (Запрос к серверу)
Создание запроса к серверу
Data Definition Query (Управляющий запрос)
Создание новой таблицы
Изменение таблицы
Создание индекса
Удаление таблицы
Определение свойств полей
Оптимизация запросов
Резюме

Глава 5. Механизм баз данных Microsoft Jet 4.0
Исторический экскурс
Jet 1.0
Jet 1.1
Jet 2.0
Jet 2.5
Jet 3.0
Jet 3.5
Jet 3.51
Jet 4.0
Будущее Microsoft Jet
Использование новых возможностей Jet 4.0 при разработке приложений
Собственный провайдер OLE DB
Блокировка на уровне строки
Полная поддержка Unicode
Поддержка Unicode в Jet 4.0
Типы данных Jet
Поля Memo с возможностью поиска
Connection Control и пассивное Отключение
Новый синтаксис SQL
Резюме
Часть II. Доступ к данным

Глава 6. ActiveX Data Objects. Введение
Развитие технологии доступа к данным
Собственные API
Open Database Connectivity (ODBC)
Microsoft Jet/Data Access Objects (DAO)
Remote Data Objects (RDO) и ODBCDirect
Универсальная технология доступа к данным от Microsoft
ActiveX Data Objects (ADO)
ADO 1.0
ADO 1.5
ADO 2.0
ADO 2.1,
Объектная модель ADO
Объект Connection
Выполнение оператора SQL вне объекта Connection
Объект ADO Recordset
Использование объекта Recordset с объектами Command и Parameter
Выполнение запроса действия с помощью объекта Command
Объекты Field и Property
Объект Error
Переход от DAO к ADO
Преобразование из предыдущих версий Access
Когда следует выполнять преобразование в ADO?
Сравнение объектной модели ADO с DAO
Резюме

Глава 7. Расширенные возможности ADO
Использование в Access провайдера OLEDB Provider
Конструкция CurrentProject. Connection
Подключение к базе данных с помощью связей Microsoft Data Link
Использование ADO при обращении к нереляционным наборам данных
Список пользователей Jet
Создаваемые наборы записей
Формирование данных
Расширенные возможности обработки данных с помощью ADO
Изменение данных в наборе записей
Сохраняемые наборы данных
Изменение структуры данных с помощью ADOx
Объект Catalog
Создание базы данных
Создание таблиц и полей
Создание отношений в АООх
Создание запросов в ADOx
Резюме

Часть III. Интерфейсы пользователя


Глава 8. Дополнительные сведения о проектировании форм
Свойства формы
Свойства данных
Свойства форматирования
Other Properties (Другие свойства)
Полезные свойства, не содержащиеся в Property Sheet
События
Элементы управления формы Access
Элемент управления Combo Box
Списки
Элемент управления Multi-Select List Box
Подчиненные формы
Элемент управления Built-in Tab
Фреймы опций
Контекстные меню
Гиперссылки
Резюме

Глава 9. Использование в формах элементов управления ActiveX
Теоретические принципы применения элементов управления ActiveX
Типы элементов управления ActiveX
Где можно получить элементы управления ActiveX
Безопасны ли элементы управления ActiveX?
Можно ли использовать и распространять элементы управления ActiveX
в собственных приложениях?
Практическое использование элементов управления ActiveX
Инсталляция элемента ActiveX
Регистрация элемента ActiveX
Добавление элемента ActiveX к форме
Установка свойств элемента ActiveX
Создание программного кода для выполнения методов либо ответа на события
21 элемент управления ActiveX
Элемент Animation
Элемент Calendar
Элемент Common Dialog
Элемент DateTimePicker
Элемент FlatScrollBar
Элемент ImageCombo
Элемент ImageList
Элемент ListView
Элемент MAPISession
Элемент MAPIMessages
Элемент MonthView
Элемент ProgressBar
Элемент RichText
Элемент Slider
Элемент StatusBar
Элемент Syslnfo
Элемент TabStrip
Элемент ToolBar
Элемент TreeView
Элемент UpDown
Элемент WebBrowser
Распространение элементов управления ActiveX
Резюме

Глава 10. Составление отчетов
Понятие отчета
Архитектура отчетов Access
Построение отчета на базе одной таблицы с помощью мастера отчетов
Настройка отчетов
Изменение источника записи в отчете
Изменение структуры группировки в отчете
Реализация группировки в отчете
Использование функций в отчете
Работа с подчиненными отчетами
Создание простого подчиненного отчета
Создание простых почтовых наклеек
Публикация отчета
Способы публикации отчетов
Модификация отчета во время выполнения
Фильтрация и сортировка
Свойство GroupKeepTogether
Свойство HasData
События отчета (рабочий цикл)
Свойства разделов
Свойства разделов (цикл разработки)
Свойства разделов (рабочий цикл)
Программное составление отчетов
Создание источника записей
Создание объекта Report
Создание разделов
Советы и подсказки
Создание двухнедельных группировок
Сокрытие повторяющихся данных
Группировка данных в алфавитном порядке
Создание пронумерованных списков
Размещение пустых строк
Переустановка нумерации страниц для новых групп
Создание вертикальных линий
Размещение номеров страниц
Идентификация пользователя, печатающего отчет
Форматирование страниц для переплета
Расчет сумм на странице
Тонкая манипуляция элементами
Резюме

Часть IV. Программирование на VBA


Глава 11. Создание объектов с помощью модулей классов
Преимущества использования объектов
Сокрытие сложного программного кода
Использование технологии Microsoft IntelliSense
Организация кода
Просмотр объектов в браузере объектов
Создание экземпляров объекта
Упрощение кода в целях последующей поддержки и обновления
Ограничение доступа к коду
Переносимость кода,
Объекты, свойства и методы
Создание классов
Вставка модуля класса
Создание свойств
Использование общедоступных переменных
Использование процедур свойств
Общедоступная переменная и процедуры свойств
Создание перечисляемых типов данных
Создание методов
Использование методов
Создание событий
Использование событий
Вызов событий Initialize и Terminate
Использование объектов
Создание объектной переменной
Присваивание объектной переменной объекту
Использование объекта
Освобождение объекта
Создание нескольких экземпляров объекта
Дополнительные примеры объектов
Объект TextFile
Объект Timer
Объект Sound
Объект Letter
Объект Outlook
Применение объекта обработчика ошибок
Использование объектов с коллекциями VBA
Создание коллекции VBA
Свойства и методы коллекции VBA
Резюме

Глава 12. Отладка приложений Access
Исключение логических ошибок
Работа в среде разработки Visual Basic (IDE)
Project Explorer
Окно Code
Окно Properties Window
Окно Immediate
Окно Locals
Окно Watch
Object Browser
Окно Call Stack
Работа с объектом Debug
Метод Debug.Print
Метод Debug.Assert
Использование окна отладки
Оценка переменных
Изменение значения переменной
Оценка встроенных функций
Выполнение пользовательских функций
Выполнение пользовательских подпрограмм
Полезные советы
Использование отладчика
Установка прерываний
Выполнение кода в пошаговом режиме
Определение значений переменных
Использование технологии IntelltSense при отладке
Использование окна Locals
Использование окна Watch
Просмотр в окне Call Stack
Использование условной компиляции
Создание надежного кода
Тестирование приложения
Методики отладки
Резюме

Глава 13. Профессиональная обработка ошибок
Исключение синтаксических ошибок
Исключение логических ошибок
Исключение ошибок рабочего цикла
Простой обработчик ошибок
Выполнение программы с обработкой ошибок
Объект Err
Реагирование на возникновение ошибок
Операторы Resume
Получение дополнительной информации об ошибках
Комплексный обработчик ошибок
Ошибки с точки зрения конечного пользователя
Обнаружение проблем, возникающих при работе компьютеров
Отчетность
Ошибки в различных приложениях
Обработка ошибок для вложенных процедур
Дополнительная информация об ошибках
Процедуры события ошибки
On Error Go To 0
On Error Resume Next
Метод AccessError
Полезные функции обработки ошибок
Установка опций обнаружения ошибок
Резюме

Глава 14. Оптимизация приложения
Оптимизация аппаратных средств и ОС Windows
Установка приложения с учетом достижения оптимальной производительности
Оптимизация настройки механизма
Jet Database Engine
Безопасное изменение установок Jet
Средства оценки производительности
О происходящем "за кулисами"
Оптимизация базы данных
Составление таблиц данных
Нормализация данных в целях повышения производительности
Создание индексов, ускоряющих выполнение запросов
Раннее создание отношений для повышения производительности
Повышение производительности запросов
Оценка типа результирующего набора для достижения оптимальной
производительности
Повышение скорости выполнения запросов
Оптимизация форм
В начале
Быстрая загрузка изображений
Основы создания быстрых форм
Повышение скорости печати отчетов
Создание высокопроизводительного кода
Использование памяти кодом
Работа с модулями
Компиляция кода
Декомпиляция
Составление файла .MDE
Использование Option Explicit
Выбор размеров переменных
Сохранение стекового пространства с помощью строковых переменных
Объявление типа объекта
Использование поточного кода вместо вызова других функций
Переключение True и False
Использование Len() вместо пустой строки
Использование True и False вместо нуля
Быстрые ссылки на объекты
Использование быстродействующих массивов
Использование констант
Правильное использование закладок
Закрытие и разрушение избыточных данных
Использование SQL вместо DАО
Использование номеров индексов коллекций
Создание быстрых циклов
Исключение IIF() из кода
Построение конструкции Select Case
Использование .Execute вместо RunSQL
Использование A2KU_Timer
Проверка эффективности транзакций
Контроль обновлений
Использование ActiveX и метода раннего связывания
Преобразования в архитектуре клиент/сервер
Хлеба и зрелищ
Резюме

Часть V. Среда клиент-сервер Access

Глава 15. Проекты и визуальные средства Access
Знакомство с Access Data Project
ADP: за и против
Использование ADP
Создание ADP
Окно создания базы данных для ADP
Работа с ADP и существующими базами данных SQL Server
Работа с таблицами SQL Server
Представления SQL Server
Хранимые процедуры
Схемы баз данных
Формы, страницы доступа к данным, отчеты, макросы и модули
Администрирование SQL Server посредством ADP
Повторное подключение к базе данных SQL Server
Создание проекта на основе новой базы данных
Создание таблиц
Создание отношений при работе со схемой
Создание представлений
Создание хранимых процедур
Создание приложения Access
Резюме

Глава 16. Разработка внешнего интерфейса Microsoft SQL Server в Access
Архитектура клиент/сервер: сравнение OLE DB и ODBC
Подключение к SQL Server
Создание источника данных ODBC (DSN)
Связывание таблиц
Хранимые процедуры и запросы SQL к Серверу
Создание отчетов Access с помощью хранимых процедур и запросов к серверу
Создание с помощью средств Access 2000 отчетов на основе данных SQL Server
Расширенные возможности: передача параметров хранимой процедуре во время
выполнения
Дополнительная фильтрация отчета во время выполнения
Использование форм в приложении
Связанные формы
Несвязанные формы
Расширенные возможности провайдера OLE DB SQL Server
Использование NextRecordset
Выполнение команд с параметрами
Сложный способ
Использование метода CreateParameter
Использование метода Refresh
Обработка возвращаемых значений
Работа с хранимой процедурой без использования объекта Command
Использование класса Connection
Использование класса Connection в приложении
Резюме

Глава 17. Внешний интерфейс Access 2000 к 0rас1е
Доступ кданным Oracle из Access
Связывание таблиц
Запросы SQL к серверу (ODBC)
Использование маркеров замены позиционирования
Сравнение функций Oracle и Access
Строки
Математические расчеты в Oracle
Работа с датами в Oracle
Начальные сведения о представлениях и хранимых процедурах
Создание представления
Подключение к Oracle через ADO
Создание хранимых процедур
Вызов хранимой процедуры
Создание свободного интерфейса для Oracle
Построение свободного интерфейса
Резюме

Часть VI. Взаимодействие приложений

Глава 18. Использование метода автоматизации ActiveX
Что такое автоматизация ActiveX
Для чего используется метод автоматизации
Отличия сервера автоматизации от клиента автоматизации
Определение требований к ресурсам автоматизации
Общие принципы работы
Создание и установка ссылки на другое приложение
Установка ссылки на другое приложение
Просмотр объектов, свойств и методов
Представление об объектных моделях
Использование браузера объектов
Создание объектной переменной
Ссылка на уже открытое приложение
Присваивание приложению объектной переменной
Запуск отдельной копии приложения
Совместное использование функции
GetObject и ключевого слова New
Сравнение раннего и позднего связывания
Использование функции CreateObject
Использование свойств и методов объекта Automation
Установка свойств объекта
Установка методов объекта
Освобождение объекта Automation
Создание цельного проекта
Закрытие приложения сервера автоматизации
Использование свойства UserControl для определения способа, с
помощью которого было открыто приложение
Использование WithEvents для отображения событий сервера автоматизации
Работа с WithEvents
Использование приемов и возможностей автоматизации
Используйте ссылки, способ раннего связывания и ключевое слово New
Используйте существующее приложение, если оно уже открыто
Отключите ScreenUpdating
Обратная связь с пользователем
Выполняйте код на сервере автоматизации
Используйте конструкцию With/End With
Освобождайте объектные переменные
Не отображайте диалоговые окна и окна сообщений
Используйте обработку ошибок
Резюме

Глава 19. Интеграция с Office 2000
Для чего нужна интеграция с Office 2000
Использование Word
Использование Excel
Использование PowerPoint
Использование Outlook
Использование Graph
Использование MapPoint
Использование Frontpage
Использование Binder
Выбор нужного инструментального средства
Вездесущий VBA
Использование модуля Macro Recorder для написания кода
Использование автомакросов
Microsoft Forms
Браузер объектов
Аргументы классов для приложений Office
Пример использования метода автоматизации
Автоматизация Word
Объектная модель Word
Использование шаблонов Word
Вставка данных в документы Word
Примеры кода автоматизации Word
Поля Word
Сводная информация о документе
Другие возможности Word
Автоматизация Excel
Объектная модель Excel
Примеры кода автоматизации Excel
Автоматизация PowerPoint
Примеры кода автоматизации PowerPoint
Автоматизация Outlook
Объектная модель Outlook
Примеры кода автоматизации Outlook
Автоматизация Graph
Объектная модель Graph
Создание графиков
Примеры кода автоматизации Graph
Автоматизация MapPoint
Объектная модель MapPoint
Примеры кода автоматизации MapPoint
Автоматизация Frontpage
Объектная модель Frontpage
Примеры кода автоматизации Frontpage
Автоматизация Binder
Объектная модель Binder
Пример кода автоматизации Binder
Защита документов, шаблонов и кода
Резюме

Глава 20. Использование Visual Basic совместно с Access
Создание компонентов кода ActiveX
Что такое компонент кода ActiveX
Различия между ActiveX ЕХЕ и ActiveX DLL
Создание компонента кода ActiveX
Компиляция DLL
Использование компонента ActiveX cSound
Использование компонента в других приложениях
Распространение компонентов ActiveX
Компонент обработки ошибок
Создание элементов управления ActiveX
Типы элементов управления ActiveX
Атрибуты элемента управления ActiveX .
Создание элемента управления ActiveX цикла разработки
Создание элемента управления ActiveX рабочего цикла
Резюме

Часть VII. Особенности работы в многопользовательском режиме

Глава 21. Особенности работы в многопользовательском режиме
Конфликты доступа
Конфигурация
Access и способы блокировки в Jet
Основные сведения о блокировке LDB-файл
Сравнение оптимистической, пессимистической блокировок и блокировки
на уровне строки
Свойство RecordLocks и связанные интерфейсные элементы
Методы блокировки в Jet
Обработка ошибок блокировки при работе в многопользовательской среде
Блокировка Oracle/SQL Server
Резюме

Глава 22. Репликация и JRO
Когда следует использовать репликацию
Случаи неприменимости репликации
Подготовка базы данных к репликации
Репликация с помощью Портфеля
Возможности пользовательского интерфейса Access
Различия между локальными и реплицируемыми объектами
Планирование топологии репликации
Выбор контролируемой схемы
Выбор схемы отсутствия контроля
Jet и модель объекта репликации
Изучение JRO
Свойства и методы JRO
Свойство ActiveConnection
Свойство ConflictFunction
Свойство ConflictTables
Свойство DesignMasterlD
Объекты Replica
Свойство ReplicaID
Свойство Replica Type
Свойство RetentionPeriod
Свойство Visibility
Метод CreateReplica
Метод GetObjectReplicability
Метод MakeReplicable
Метод PopulatePartial
Метод SetObjectReplicability
Коллекция Filters
Объект Filter
Резюме

Глава 23. Безопасность
Элементы безопасности
Безопасность, основанная на использовании паролей
Безопасность, основанная на рабочих группах
Создание рабочих групп
Пользователи и группы
Понятие о пользователе, заданном по умолчанию, и установках группы
Создание пользователей
Установка/изменение пользовательских паролей
Создание групп
Распределение пользователей по группам
Отличия между пользователями, заданными по умолчанию, специальными
пользователями и группами
Понятие о разрешениях
Обеспечение безопасности с помощью опций Startup
Безопасность и репликация
Безопасность для разделенных баз данных
Опция With OwnerAccess
Безопасность в архитектуре клиент/сервер
Управление пользователями
Перечень групп и пользователей и указание их членства
Идентификация имеющихся пользователей с помощью ADOX
Идентификация пользователей с пустыми паролями
Назначение/удаление паролей
Администрирование групп
Управление групповым владением объектов
Управление несколькими приложениями
Использование SQL
Этапы обеспечения безопасности баз данных
Общие ошибки обеспечения безопасности
Резюме

Часть VIII. Публикация в Web с помощью Access 2000

Глава 24. Конфигурирование Web-сайта для публикации в Web
Среда разработки и рабочая среда
Выбор платформы для разработки
Personal Web Server и Peer Web Services
Internet Information Server
Что такое Option Pack
Установка Web-сервера
Инсталляция
NT Option Pack для Windows 95/98
Microsoft Transaction Server 2.0
Управление и конфигурирование Web-сервера
Personal Web Manager
Microsoft Management Console
Защита Web-приложений
Различие между сайтом и виртуальным каталогом
Что такое IUSER
Тип файловой системы
Структуры каталогов и необходимые разрешения
ASP/HTML размещение и разрешения
Базы данных: размещение и разрешения
Резюме

Глава 25. Использование Web-компонентов Office при работе с Access 2000
Что такое Web-компоненты Office 2000
Функции Web-компонентов Office
Лицензионные соглашения на применение Web-компонентов
Использование элемента управления Office Spreadsheet
Начало
Применение элемента управления в Access
Применение элемента управления Office Chart
Начало
Применение элемента управления в Access
Использование элемента управления Office PivotTable
Начало
Резюме

Глава 26. Использование страниц доступа к данным
Что такое страницы доступа к данным
Архитектура страниц доступа к данным и основные требования к ним
Создание вашей первой страницы доступа к данным
Просмотр страниц доступа к данным
Внедрение интерактивных переходов
Взаимодействие Web-компонентов Office со страницами доступа к данным
Добавление Web-компонента Excel Spreadsheet
Добавление Web-компонента Chart
Создание сценария для страниц доступа к данных
Изменение источника данных DAP во время ее выполнения
Резюме

Глава 27. Публикация в Web с помощью Access 2000 и Active Server Pages
Применение Active Server Pages
Понятие об Active Server Pages
Active Server Pages в сравнении с CGI
Получение Active Server Pages
Начало работы с Active Server Pages
Понятие о коде ASP
Понятие об ограничениях при экспорте ASP Pages
Active Server Pages 101
Механизм Active Server Page
Сценарий со стороны сервера
Объекты Application и Session
Применение объектов Response и Request
Файл Global.asa
Примеры объектов Active Server Page
Использование ADO в ваших приложениях Active Server Page
Пример из реальной жизни: установка Web-страницы, которая самостоятельно
поддерживает членство пользователей
Публикация в Web, выполняемая с помощью Access 2000 и XML
Основы XML
Создание XML программным способом
Создание диаграмм с помощью элемента управления Chart
Резюме

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