В этой статье представлены решения для устранения ошибки «Запись слишком велика» в MS Access.
Возможно, вы сталкивались с ситуацией, когда пытаетесь импортировать в базу данных Access, казалось бы, небольшой файл, но он оказывается не таким маленьким, как вы думали. Это становится очевидным, когда появляется предупреждение «Запись слишком большая», ошибка 3047. Это может стать полной неожиданностью, поскольку размер файла на самом деле может быть очень маленьким. Чтобы справиться с этой ошибкой, сначала нужно понять, почему она возникает. Итак, начнем с этого. 
Причины ошибки
О чем многие пользователи Access не знают, так это о том, что существует ограничение на записи Access, которое ограничивает их использование не более 2000 символов для «фактически доступного пространства». Это означает, что пользователю было предоставлено всего 4000 байт Unicode, это тот предел, который вряд ли сложно превысить. Превышение этого предела во многих случаях является чисто непреднамеренным, оставляя не обращающего внимания пользователя на еще одну сложную ошибку, с которой ему приходится иметь дело.
Опередив причины этой ошибки, мы теперь попытаемся понять возможные решения данной проблемы.
Работа с ошибкой
Несколько распространенных исправлений, которые вы можете использовать при обнаружении этой ошибки, описаны ниже.
Попробуйте переопределить таблицу – Один из наиболее распространенных способов решения этой проблемы – это переопределение таблицы. Это предполагает не только удаление старых и ненужных полей, но и добавление нескольких новых полей.
- Используйте поля для заметок - Вы можете попробовать справиться с ошибкой 3047, используя поля типа Memo, а не поля типа Text. Вы можете установить тип поля для памятки, установив значение свойства типа поля равным 12. Если оно равно 10, вы снова получите текстовое поле. Если вы в конечном итоге превысите заданный лимит в случае с мемо-полем, Visual Basic будет использовать отдельную страницу для размещения этих полей в базе данных.
- Используйте метод DoCmd.TransferSpreadSheet – Согласно редакции MS Access 2016 года, лимит каждой таблицы установлен на 4000 записей, с общим размером 2 ГБ. Поэтому, если вы в конечном итоге создадите таблицу, превышающую этот предел, вам придется иметь дело с этой ошибкой.
Обходной путь
Помимо использования Исправление доступа инструмент или способы устранения ошибки, указанной выше, вы также можете использовать обходной путь, который включает использование электронной таблицы Excel и связывание ее с таблицей. Это позволит вам иметь запрос, который может хранить более 4000 записей и экспортировать в Excel, когда это необходимо, без каких-либо ошибок.
Тем не менее, здесь важно помнить, что вы используете VBA при экспорте массовых запросов.
Об авторе:
Вивиан Стивенс — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая SQL Server ремонт и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com
Попробуйте переопределить таблицу – Один из наиболее распространенных способов решения этой проблемы – это переопределение таблицы. Это предполагает не только удаление старых и ненужных полей, но и добавление нескольких новых полей.