Миграция Access Аудит Платформа Миграция Тесты Эксплуатация

Миграция базы данных Access 2003 → Access 2016+

Технический документ: переход с формата .mdb (Access 2003) на формат .accdb (Access 2016/2019/365) с сохранением работоспособности на Windows 10.

1. Аудит текущей структуры данных

Перед миграцией необходимо зафиксировать состав объектов базы и выявить потенциальные проблемы.

1.1. Инвентаризация объектов

Откройте базу .mdb в Access 2003 (или в режиме совместимости) и заполните таблицу:

Тип объектаИмяКол-во записейПримечание
Таблицазаполнить по каждой таблице
Запросзаполнить по каждому запросу
Формазаполнить по каждой форме
Отчётзаполнить по каждому отчёту
Макросзаполнить по каждому макросу
Модуль VBAзаполнить по каждому модулю

1.2. Что проверить обязательно

Связи между таблицами

Откройте окно связей (Ctrl+L). Зафиксируйте все связи, типы (1:1, 1:∞) и каскадные правила. После миграции связи должны сохраниться, но проверить нужно.

Типы полей

Обратите внимание на: Счётчик (AutoNumber), OLE Object (проблемный при миграции), Гиперссылка, Расчётное поле. Запишите все нестандартные типы.

VBA-код и макросы

Откройте редактор VBA (Alt+F11). Проверьте: ссылки на внешние библиотеки (Tools → References), использование DoCmd.TransferDatabase, API-вызовы Windows (Declare).

Фронтенд / бэкенд

Если база разделена (linked tables → отдельный .mdb), зафиксируйте путь к бэкенду и список связанных таблиц.

Внимание: объекты OLE Object
Поле OLE Object в Access 2003 хранило встроенные объекты (Excel, Word, картинки). В .accdb эти данные могут не отобразиться корректно. Рекомендуется экспортировать содержимое OLE-полей в файлы до миграции.

1.3. Размер и производительность

ПараметрЗначениеКомментарий
Размер файла .mdb___ МБФайлы > 2 ГБ потребуют архивации старых записей
Кол-во таблиц___
Кол-во записей (суммарно)___
Кол-во форм/отчётов___
Наличие VBAДа / Нет
Linked tables (бэкенд)Да / НетЕсли да — нужна миграция обоих файлов

2. Выбор целевой платформы

Целевой формат: .accdb — нативный формат Access 2007–2019/365. Полностью совместим с Windows 10.

2.1. Сравнение версий

ПараметрAccess 2003 (.mdb)Access 2016+ (.accdb)
Макс. размер файла2 ГБ2 ГБ (без изменений)
Формат по умолчаниюJet 4.0 (.mdb)ACE (.accdb)
ШифрованиеНетДа (AES-128)
Поля вложенийНетДа (замена OLE Object)
Многозначные поляНетДа (но не рекомендуется)
История изменений MemoНетДа
Вычисляемые поляНетДа
Внешние данные (SharePoint, Outlook)ОграниченноРасширенная интеграция
Совместимость с Windows 10Проблемная (UAC, DEP)Полная

2.2. Рекомендуемая версия

ВариантЛицензияПлюсыМинусы
Access 2016 (standalone) Разовая покупка Стабильная, без подписки, совместима с Windows 10/11 Нет обновлений функционала
Access 2019 (standalone) Разовая покупка Последняя «коробочная» версия Только Windows 10/11
Microsoft 365 (Access included) Подписка Постоянные обновления, последняя версия Ежемесячная/годовая оплата

Рекомендация: Access 2016 или 2019 — минимальная версия, гарантирующая полную совместимость с Windows 10 и форматом .accdb.

Важно: нельзя перейти на .accdb и вернуться обратно
Обратная конвертация .accdb → .mdb не поддерживается. Перед миграцией обязательно сделайте резервную копию исходного .mdb файла.

3. Схема миграции данных

Пошаговый процесс конвертации базы из формата .mdb в .accdb с сохранением всех объектов.

3.1. Подготовка

1

Резервная копия. Скопируйте исходный файл база.mdb в безопасное место. Имя копии — с датой: база_backup_2026-09-14.mdb.

2

Сжатие и восстановление. В Access 2003: Сервис → Служебные программы → Сжатие и восстановление. Это устраняет повреждения перед миграцией.

3

Документация. Заполните таблицы из раздела 1 (аудит) — они нужны для проверки после конвертации.

3.2. Конвертация

4

Откройте .mdb в Access 2016/2019/365. Двойной клик по файлу — Access откроет его в режиме совместимости (строка заголовка покажет «Режим совместимости»).

5

Конвертация формата. Файл → Сохранить как → База данных Access (*.accdb). Укажите новое имя (например, база_new.accdb). Access преобразует формат.

6

Проверка объектов. После конвертации откройте .accdb и сверьте количество таблиц, запросов, форм, отчётов, макросов и модулей с данными аудита.

3.3. Пост-миграция: что исправить вручную

ПроблемаГде искатьРешение
Поля OLE Object пустые или не читаются Таблицы с полем типа OLE Object Заменить на «Вложение» (Attachment) или сохранить файлы отдельно и использовать гиперссылки
Ссылки на внешние библиотеки VBA (MISSING:) VBA → Tools → References Снять галочку с помеченных «MISSING», подключить актуальные версии библиотек
Linked tables указывают на старый .mdb Диспетчер связанных таблиц (внешние данные) Переподключить на новый .accdb-бэкенд
Макросы с DoCmd.TransferDatabase Макросы и VBA-процедуры Проверить параметры — формат источника/приёмника должен быть ACCD
Специальные символы в именах полей Все таблицы Переименовать: убрать пробелы, точки, спецсимволы. Использовать snake_case или CamelCase

3.4. Разделённая база (frontend / backend)

Если база разделена на фронтенд (.mdb) и бэкенд (.mdb):

A

Сконвертируйте бэкенд в .accdb первым (пункты 4–6).

B

Сконвертируйте фронтенд в .accdb.

C

Во фронтенде: Внешние данные → Управление связями — переподключите все таблицы на новый .accdb-бэкенд.

D

Разверните .accdb-фронтенд пользователям.

4. План тестирования целостности

Проверка после миграции — убедиться, что все данные и объекты работают корректно.

4.1. Проверка данных

№ПроверкаМетодРезультат
1Кол-во записей в каждой таблицеСравнить с данными аудита (раздел 1)☐ Совпадает
2Первичные ключиОткрыть таблицу, проверить уникальность PK☐ Без дублей
3Внешние ключи (связи)Проверить окно связей, каскадные правила☐ Сохранены
4Поля с маской вводаОткрыть таблицу в режиме конструктора, проверить свойства полей☐ Работают
5Значения по умолчаниюПроверить свойства полей в конструкторе☐ Совпадают
6Подстановки (Lookup)Открыть таблицы с полями Lookup, проверить выпадающие списки☐ Работают

4.2. Проверка объектов

№ПроверкаМетодРезультат
7Запросы выполняютсяОткрыть каждый запрос, проверить результат☐ Без ошибок
8Формы открываютсяОткрыть каждую форму, пролистать записи☐ Данные отображаются
9Отчёты формируютсяПредпросмотр каждого отчёта☐ Без ошибок
10Макросы работаютЗапустить каждый макрос☐ Выполняются
11VBA-модули компилируютсяVBA → Debug → Compile☐ Без ошибок
12Кнопки на формахНажать каждую кнопку с привязанным действием☐ Работают

4.3. Проверка на Windows 10

№ПроверкаОжидаемый результат
13Открытие .accdb двойным кликомAccess открывает базу без ошибок UAC/DEP
14Работа с включённым UACБаза работает без запуска от имени администратора
15Печать отчётовPDF-экспорт и печать работают корректно
16Экспорт в ExcelВыгрузка данных из таблиц/запросов в .xlsx

4.4. Нагрузочный тест (для многопользовательских баз)

Если база используется несколькими пользователями одновременно:

5. Инструкция по эксплуатации

Правила работы с мигрированной базой на Windows 10.

5.1. Требования к окружению

КомпонентМинимумРекомендуется
ОСWindows 10 (x64)Windows 10 22H2+ / Windows 11
AccessAccess 2016Access 2019 или Microsoft 365
ОЗУ4 ГБ8 ГБ+
Свободное место2× размер базыДля сжатия и резервных копий
Сеть (для общего доступа)100 Мбит/с1 Гбит/с, стабильное соединение

5.2. Ежедневные операции

Резервное копирование

Частота: ежедневно (или перед каждым сеансом массовых изменений).
Метод: копировать .accdb на сетевой диск / USB / облако.
Имя: база_YYYY-MM-DD.accdb.
Хранение: минимум 7 последних копий.

Сжатие базы

Частота: еженедельно или при росте файла.
Метод: Файл → Сведения → Сжатие и восстановление.
Зачем: удаляет «мусор», уменьшает файл, ускоряет работу.

Обновление связей

Если бэкенд перемещён — переподключите таблицы через Внешние данные → Управление связями. Путь к бэкенду должен быть доступен всем пользователям.

Локальная копия фронтенда

Каждый пользователь должен иметь свою локальную копию фронтенда (.accdb). Не открывайте общий файл одновременно — это источник повреждений. Обновления фронтенда — через замену файла.

5.3. Типичные проблемы и решения

ПроблемаПричинаРешение
«Файл заблокирован другим пользователем» Файл .laccdb не удалён (аварийное завершение) Удалить файл база.laccdb в папке с базой (когда никто не работает)
База открывается медленно Фрагментация, накоплен «мусор» Сжатие и восстановление (пункт 5.2)
«Недостаточно памяти» Сложные запросы, индексы Оптимизировать запросы, добавить индексы на поля фильтрации
Формы выглядят иначе Разрешение экрана, тема Windows Настроить макет форм в конструкторе под текущее разрешение
VBA не компилируется Ссылки на старые библиотеки VBA → Tools → References → снять MISSING, подключить актуальные

5.4. Чек-лист перед «боевым» запуском