- •Часть 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 автоматическое заполнение в каждой записи значения Код (ID) с типом Счетчик, она запросто может вставить одни и те же данные несколько раз, каждый раз задавая другое значение поля Код (ID). С другой стороны, если не использовать автоматически генерируемые значения в поле Код (ID), а импортируемые данные содержат первичный ключ, программа Access вообще не сможет импортировать новые данные. Ясно, что оба варианта далеки от идеала.
Если вы связаны с импортом надолго, единственное решение — быть внимательным. Далее приведено несколько советов.
Если вы хотите повторно использовать файл после того, как вы уже импортировали содержащиеся в нем данные, убедитесь в том, что вы удалили из файла всю информацию, импортированную ранее.
Если вам кажется, что вы могли импортировать одни и те же данные дважды, примените для проверки запрос. Можно создать собственный запрос или использовать запрос типа Повторяющиеся записи (Find Duplicates), создаваемый Мастером запросов (см. разд. "Создание простого запроса с помощью Мастера запросов" главы 6).
Лучше чаще вносить мелкие изменения, чем реже выполнять более крупные обновления. В этом случае вы быстрее и гораздо легче обнаружите ошибки.
Если вам нужно более надежное решение, необходимо создать его самостоятельно. Можно воспользоваться программным кодом на Visual Basic для того, чтобы управлять способом передачи данных в программе Access (вас ждет много дополнительной работы).
Импорт из файла Excel
Для импорта из файла Excel данные должны быть организованы в базовую таблицу. В идеале заголовки столбцов этой таблицы должны совпадать с именами полей в вашей БД. Нужно удалить любые данные, которые вы не хотите импортировать (как и ячейки под таблицей, не входящие в нее). Необходимо также удалить значения, вычисляемые с помощью формул Excel. (Как вы узнали из разд. "Правило 5. Избегайте избыточной информации" главы 5, в таблице не следует хранить вычисляемые значения, поскольку они повышают риск возникновения противоречивых данных.)
Примечание
Ранее в этой главе вы узнали, как обычным образом вырезать данные Excel и вставить их в таблицу Access. Но когда выполняется полнофункциональный импорт, у вас появляется возможность изменить имена полей, настроить типы данных и применить индексирование.
После того как таблица данных в файле Excel вычищена, вы готовы к запуску операции импорта.
1. Выберите на ленте Внешние данные → Импорт → Excel (External Data → Import → Excel) и задайте способ вставки импортируемой информации в вашу БД. Затем щелкните мышью кнопку ОК.
Вы узнали, как выбрать способ вставки данных в пунктах 1—3 в предыдущем разделе.
2. Выберите рабочую книгу Excel, в которой содержатся ваши данные (рис. 19.5).
Файлы или рабочие книги Excel вначале обычно состоят из трех листов. Большинство пользователей плюхают свои данные на первый из них, который первоначально назван Лист1 (Sheetl). Если вы хорошо знакомы с программой Excel, возможно, вы обозначили как именованный диапазон некоторую область в более сложной таблице. Если так, ваш именованный диапазон можно выбрать из предлагаемого списка.
Рис. 19.5.Этот файл рабочей книги Excel содержит три стандартных листа: Лист1, Лист2 и Лист3.
Когда данные выделены, их можно увидеть на экране в области предварительного просмотра
Щелкните мышью кнопку Далее.
Если первая строка ваших данных Excel содержит заголовки, выберите Первая строка содержит заголовки столбцов (First Row Contains Column Headings).
Эти заголовки станут отправной точкой для именования ваших полей. Если не выбрать вариант Первая строка содержит заголовки столбцов, программа Excel интерпретирует первую строку как обычную запись.
5. Щелкните мышью кнопку Далее.
Если для импортируемых записей создается новая таблица, программаAccess попросит более точно определить создаваемые поля. Если записи добавляются в существующую таблицу, переходите к пункту 7.
6. Для каждого поля можно выбрать имя, тип данных и наличие или отсутствие индексирования. Затем щелкните мышью кнопку Далее.
Программа Access строит кое-какие догадки, основываясь на полученных данных, но тонкая настройка деталей целиком лежит на вас (рис. 19.6).
Рис. 19.6. Для определения поля выберите его в области предварительного просмотра и затем задайте параметры. Если вы решили совсем не импортировать поле, установите флажок не импортировать (пропустить) поле (обведен), чтобы полностью его игнорировать
7. Решите, хотите ли вы, чтобы программа Access создала первичный ключ.
Выберите вариант автоматически создать ключ (Let Access add primary key) для создания поля Код (ID) с типом Счетчик (что всегда хорошая мысль). Если импортируемые данные уже содержат поле, которое вы хотите использовать как ключ, выберите вариант определить ключ (Choose my own primary key) и затем укажите нужное поле.
В текстовое поле Импорт в таблицу (Import to Table) введите имя таблицы, которую хотите создать или в которую хотите добавить записи.
Для завершения выбора нажмите кнопку Готово (Finish).
После завершения импорта можно выбрать вариант сохранения шагов этой операции для повторного ее использования.
При импорте данных из Excel могут обнаружиться потенциально ошибочные блоки. Пустые значения и поля — самая распространенная проблема, когда мастер импорта принимает за данные часть электронной таблицы, не содержащей никакой информации. (Это может произойти, если где-то в электронной таблице есть ячейка, содержащая просто пробел или использовавшаяся для хранения данных, которые с тех пор были уже удалены.) После выполнения импорта для устранения подобных проблем, возможно, придется почистить таблицу, удалив пустые поля и записи.
Импорт из текстового файла
Текстовые файлы — "наименьший общий знаменатель" для обмена данными. Если вы применяете программу, создающую файлы, которые программа Access не может импортировать, возможно, обычный текст — единственный выход для вас.
И снова начинайте с выбора файла, а затем укажите, как добавлять информацию в вашу БД. Далее мастер импорта выполнит несколько дополнительных действий.
1.Задайте тип текстового файла.
Программа Access может импортировать текстовые файлы двух типов.
В текстовых файлах с разделителями применяется особый разделитель для обозначения конца поля. Например, Джо, Пискепоун, 43 — строка, которую можно найти в текстовом файле с разделителями, представляет собой значения трех полей, отделенные друг от друга запятой.
В текстовых файлах с фиксированной шириной полей запись делится на отдельные поля в соответствии с позицией символа в строке. Каждому полю отводится определенное число символов, и если вы заполняете не все поля, программа Access заполняет оставшееся пустое место (до следующего поля) символами пробела.
Примечание
Текстовые файлы с разделителями используются чаще и обладают большей гибкостью по сравнению с текстовыми файлами с фиксированной шириной полей (поскольку они содержат значения данных с самой разной длиной).
2. Щелкните мышью кнопку Далее.
Если импортируется текст с разделителями, программа Access запрашивает символ-разделитель — другими словами, какой символ отделяет поля друг от друга (рис. 19.7). Самые распространенные разделители — запятая и символ табуляции.
Если вы импортируете текст фиксированной ширины, Access разрешает указать границы полей перетаскиванием разграничительных линий столбцов в нужную позицию в окне предварительного просмотра.
3. Завершите мастер.
Далее мастер выполняет те же шаги, что и в случае импорта данных из программы Excel.
Рис. 19.7. В данном примере поля разделены знаком табуляции
Если создается новая таблица для хранения импортируемых вами данных, на следующем этапе вам придется настроить поля, которые хотите создать, указав их имена, типы данных и вариант индексирования (см. рис. 19.6). Когда этот этап пройден, можно решить, создавать или нет поле Код (ID) с типом Счетчик и затем использовать его в качестве первичного ключа.
Наконец, на последнем этапе необходимо ввести имя таблицы, которую хотите создать или в которую хотите добавить данные. Затем можно щелкнуть мышью кнопку Готово (и при желании выбрать вариант сохранения шагов импорта для последующего повторного применения).
Экспортируемые типы файлов
Также как можно импортировать информацию из других файлов и включить ее в вашу БД, можно взять имеющиеся данные и экспортировать их в другой формат. Чаще всего вам придется выполнять эту операцию, чтобы разрешить другому пользователю или программе воспользоваться вашей информацией без обращения к программе Access.
При экспорте ваших данных можно применять все те же форматы, которые использовались в операции импорта, плюс несколько дополнительных.
■ Access. Преобразует таблицу Access (или объект другого типа) в другой файл БД Access. Это средство гораздо слабее импорта объектов Access, т. к. можно экспортировать
только один объект за другим, поочередно. По этой причине данный формат применяется нечасто.
Excel. Помещает данные в ячейки электронной таблицы Excel. Идеален, если нужно воспользоваться средствами программы Excel для анализа тенденций объемов продаж или построить диаграмму доходов.
Word. Переносит данные в документ Word, отделяя каждый столбец знаком табуляции, а каждую строку символом перевода каретки. Этот формат оставляет желать лучшего, т. к. трудно реорганизовать данные после их переноса в программу Word. (Гораздо удобнее могло бы быть средство экспорта, помещающее данные отчета в таблицу Word, с которой было бы гораздо легче работать.)
PDF или XPS. Формируется готовый к печати PDF-файл с жестким форматом и макетом, который можно увидеть при печати таблицы на принтере. В отличие от документов Excel или Word PDF-файл нельзя редактировать — можно просмотреть отчет и распечатать его.
Примечание
Формат PDF или XPS появляется, только если вы установили свободно распространяемый дополнительный модуль надстройки для пакета Office. В разд. "Получение дополнительного модуля "Save As PDF'" главы 10 описано, как его получить.
Документ HTML. Создает подготовленную для Всемирной паутины Web-страницу, которую можно поместить на Web-сайт или в интранет-сети компании. Формат HTML, генерируемый Access, выглядит удивительно, как реальный отпечатанный отчет.
Текстовый файл. Выгружает данные в обычный текстовый файл с табуляциями и пробелами, применяемыми для организации данных. Теряются цвета, шрифты, рамки и другие детали форматирования. Этот формат не очень полезен — воспринимайте его как последнее средство для передачи данных в другую программу, если никакие другие варианты экспорта не срабатывают.
XML-файл. Сохраняет данные в текстовом файле с расширением xml без форматирования. Этот вариант имеет смысл использовать, если применяется автоматически выполняемая программа, способная читать экспортированный XML-файл и обрабатывать данные.
Экспорт данных
Для выполнения операции экспорта выполните следующие действия.
1.В области переходов выделите таблицу, которую хотите экспортировать.
К сожалению, нельзя экспортировать несколько таблиц одновременно. Но можно экспортировать только часть таблицы. Один из способов экспорта фрагмента таблицы — открыть таблицу и затем выбрать строки, которые хотите экспортировать. (Когда процесс экспорта начнется, вы увидите вариант, позволяющий экспортировать только выделенные строки.) Можно также создать запрос, который извлекает только нужные вам строки. Можно экспортировать результаты запроса, выделив в области переходов запрос, а не лежащую в его основе таблицу.
2. Щелкните мышью кнопку, соответствующую типу файла, в который вы хотите экспортировать данные.
Когда
формат выбран, программа Access
запускает мастер экспорта (рис. 19.8).
Рис. 19.8. Мастер экспорта изменяется в зависимости от используемого формата экспорта. Но первый шаг всегда заключается в выборе файла и задании параметров экспорта, показанных на рисунке
3.Введите имя файла, который хотите создать.
Программа Access создает этот файл во время выполнения операции экспорта. В некоторых случаях у вас есть возможность выбрать формат файла. Например, если данные экспортируются в программу Excel, можно использовать более новый, основанный на языке XML, формат электронной таблицы (xlsx-стандарт), или более старый xls-стандарт, поддерживаемый более ранними версиями программы, например, Excel 97.
4. Если хотите сохранить форматирование, используемое в вашей БД, установите флажок Экспортировать данные с макетом и форматированием (Export data with formatting and layout).
Если вы украсили таблицу привлекательными шрифтами и цветами, программа Access сохраняет эти детали в экспортированном файле. Ясно, что этот вариант работает не со всеми форматами. Например, простые текстовые файлы не могут обрабатывать никакое форматирование.
5. Если хотите дважды проверить экспортированный документ, установите флажок Открыть целевой файл после завершения операции экспорта (Open the destination file after the export operation is complete).
Никогда не вредно убедиться в том, что вы получили те данные и форматирование, на которые рассчитывали. Если применить этот вариант, программа Access запускает экспортированный файл, открывая его в программе, которой он принадлежит (Excel для электронных таблиц, Блокнот для текстовых файлов и т. д.). Конечно, этот вариант действует, если у вас на компьютере установлена соответствующая программа.
6. Если вы выделили только несколько записей в таблице, установите флажок Экспортировать только выбранные записи (Export only the selected records).
В этом случае программа Access экспортирует только текущее выделение, а не всю таблицу или запрос.
7. Щелкните мышью кнопку ОК для выполнения операции экспорта.
Программа Access может запросить дополнительные подробности, если ей нужно больше сведений для определения способа создания экспортируемого файла.
После завершения описанного этапа Access задает последний вопрос — сохранять или нет шаги экспорта.
8. Если в дальнейшем вы хотите выполнять эту операцию экспорта повторно, установите флажок Сохранить шаги экспорта (Save export steps). Затем щелкните мышью кнопку Закрыть.
В следующем разделе объясняется, как воспользоваться сохраненной операцией экспорта.