- •Часть 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
Малоизвестная или недооцененная возможность Разбиение длинных строк кода
Если вы имеете дело с чрезмерно длинными строками кода, самое время применить символ продолжения строки языка Visual Basic, таково необычное название символа подчеркивания (_).
Заканчивайте любую строку пробелом и знаком подчеркивания и можете продолжить программный код сразу в следующей строке:
Description = Description & _
" This is a description for " & _
ProductName & "."
Если вы собираетесь применить этот прием, стоит задать отступ во всех строках, кроме первой, так вы сможете сразу увидеть, что это часть одного оператора кода.
Гораздо чаще в выражениях используются числовые значения или даты. Далее приведен код для кнопки IncreasePrice (повышение цены), которая повышает цену на 10% при каждом нажатии кнопки (и самое замечательное в том, что вы сможете щелкать кнопку мышью столько раз, сколько захотите):
Private Sub IncreasePrice_Click
Price = Price * 1.10
End Sub
Обзор разных операций, которые можно применять в выражениях для выполнения вычислений различных типов (например, сложения, умножения, деления и т. д.), приведен в табл. 7.1.
Примечание
Язык Visual Basic трактует поля Да/Нет как поля True/False (Истина/Ложь). Конечный результат такой же, а синтаксис немного отличается. Для задания значения поля Да/Нет используется одно из двух встроенных ключевых слов Visual Basic: True или False.
Что такое объекты
На самом деле с элементами управления можно делать гораздо больше. Вместо простого изменения их содержимого у вас есть возможность изменять их цвет, шрифт, местоположение, видимость и множество других характеристик. Для того чтобы стать волшебником, следует усвоить, что все элементы управления — программируемые объекты.
В мире программирования объект — это не что иное, как удобный способ собрать вместе некоторые связанные параметры. Поле Description — не просто одно значение, это целый объект "поле ввода", а это значит, что у него есть все виды встроенных параметров. Если понять, как действует поле ввода, можно добраться до всех остальных параметров элемента.
Примечание
Программа Access создает некоторую путаницу, потому что применяет слово объект в двух разных смыслах. На протяжении всей книги вы называли объектами БД все компоненты вашей БД (такие как таблицы, запросы и формы). Программисты пользуются словом "объект" в более строгом смысле для обозначения программной структуры, собирающей вместе связанные параметры и функциональные возможности (и в данной главе этот термин применяется именно в этом смысле).
Взаимодействовать с объектами можно тремя способами.
■ С помощью свойств. Свойства — это порции данных, относящихся к объекту. У объекта Поле ввода есть свойство Fontsize (Размер шрифта), которое управляет размером его текста.
• С помощью методов. Методы — это действия, которые можно выполнять с помощью объекта. Например, у всех форм есть метод Requery (обновление), позволяющий повторно выполнить запрос, с помощью которого получены данные формы.
■ С помощью событий. События — это сообщения, которые посылает объект, и на которые вы можете откликнуться с помощью вашего программного кода. Вы можете отреагировать на нажатие кнопки мышью, используя событие кнопки On Click (нажатие кнопки).
В следующих разделах все три эти характеристики объекта рассматриваются более подробно.
Свойства
Свойства не должны быть для вас новостью. В конце концов, вы потратили достаточно времени на их настройку в Окне свойств, добиваясь подходящего форматирования и поведения. Но свойства предстают совсем в ином свете, когда вы получаете возможность изменять их средствами программного кода. С помощью кода свойства можно динамически изменять в ответ на различные действия (например, нажатие кнопки или редактирование текста в поле ввода). Этот подход открывает целый мир новых возможностей.
Секретный ключ к встроенным свойствам объекта — скромная точка (которую фанаты программирования называют операцией "точка"). Предположим, что вы хотите изменить цвет фона поля Description. Это можно сделать с помощью задания значения в свойстве BackColor (цвет фона) соответствующего объекта "поле ввода". Вот как это делается:
Description.BackColor = vbYellow
В этой строке программного кода берется объект Description и затем применяется операция "точка" для выбора его свойства BackColor. Задается значение свойства BackColor с помощью специально созданного ключевого слова vbYellow. Имя свойства в программном коде, как вы видели в случае событий, не всегда совпадает с его именем в Окне свойств.
В программном коде имена свойств никогда не содержат пробелы.
Эту строку кода можно использовать в любой процедуре модуля формы до тех пор, пока у этой формы на самом деле есть элемент управления Поле, названный Description.
Примечание
Цвета в Access задаются числовыми кодами. VB упрощает жизнь для большинства широко распространенных цветов, предлагая использовать заранее определенные имена, начинающиеся с букв vb. Эти имена — рациональный способ ссылки на соответствующий числовой код цвета. За кадром vbYellow — это 65 535. (Если поискать в справке Access слово "vbYellow", можно найти полный список восьми основных цветовых констант. В примечании "Практические занятия для опытных пользователей. Получение нужного цвета" разд. "Обозначение измененной записи" далее в этой главе вы узнаете, как выбирать дополнительные цвета.)
Если не применять операцию "точка", вы будете использовать свойство но умолчанию. Для поля ввода свойство по умолчанию — Value (значение), предоставляющее содержимое
поля. Вот почему можно написать не содержащую операции "точка" строку, подобную приведенной далее:
Description = "Действительно чудесный товар."
Теперь, когда вы узнали, что все элементы управления на ваших формах — это объекты с целым набором полезных параметров, которые можно изменять, возникает важный вопрос: как узнать, какие свойства есть у объекта и как найти нужные вам? Несколько рекомендаций окажут необходимую помощь.
У идентичных элементов управления одинаковые свойства. Несмотря на то, что каждое поле ввода на вашей форме представлено отдельным объектом "поле ввода", у всех объектов "поле ввода" одни и те же свойства. Очевидно, что значения свойств могут отличаться, но вы можете быть уверены в том, что если вы нашли свойство BackColor в одном поле ввода, это же свойство вы найдете и у всех остальных полей ввода.
У похожих элементов управления похожие свойства. У них у всех есть свойство BackColor, будь то поле ввода, кнопка или скромная подпись. Даже объекты, представляющие разные части формы (например, Detail (область данных), FormHeader (заголовок формы), FormFooter (примечание формы)) содержат свойство BackColor для задания цвета их фона. Этот вид стандартизации позволяет применить знания об одном элементе управления к другому элементу.
Свойство можно найти вОкне свойств. Имена свойств, применяемые в программном коде, обычно соответствуют именам свойств, которые вы видите в Окне свойств (в англоязычной версии программы). Существует одно отличие — у имен свойств, используемых в коде, нет пробелов, поэтому свойство Back Color (Цвет фона) в Окне свойств в программе превращается в свойство BackColor.
Рис. 16.6. Когда вводится имя объекта и затем точка, Visual Basic выводит список вариантов. Если ввести несколько букв, Visual Basic перейдет к соответствующему участку списка. Если вы увидели нужное свойство, его можно вставить щелчком кнопки мыши или нажатием клавиши <Пробел>
■ Свойство можно найти с помощью средства Visual Basic IntelliSense. Редактор Visual Basic предлагает замечательный инструмент, способный помочь найти нужное свойство. Как только вы ввели точку после имени объекта, редактор выводит на экран список всех свойств и методов, которые можно применять к данному объекту (рис. 16.6).
Примечание
Список IntelliSense содержит два вида элементов: свойства (отдельные характеристики, касающиеся объекта) и методы (действия, которые можно выполнять с объектом). Свойств больше и они помечены пиктограммой руки, держащей почтовую открытку. Методы снабжены пиктограммой парящего зеленого ластика. Вы узнаете, как пользоваться методами в следующем разделе.