Сжатие и импорт не решат проблему для сообщенной ошибки, которая является явно поврежденным указателем для мемо-поля. Единственное, что вы можете сделать, это удалить и воссоздать запись, которая вызывает проблему. И вам нужно найти способы редактирования данных заметок (или исключить поля заметок - вам действительно нужно больше 255 символов или нет?), Которые не подвергают вас риску повреждения. Это означает, что следует избегать связанных элементов управления в формах для полей заметок.
Вместо этого используйте несвязанное текстовое поле и в событии OnCurrent формы назначьте текущие данные из базового источника записей формы:
Me!txtMyMemo = Me!MyMemo
Чтобы сохранить изменения в несвязанном элементе управления, используйте событие AfterUpdate элемента управления:
Me!MyMemo = Me!txtMyMemo
Me.Dirty = False ' save the whole record
Почему памятные поля подвержены коррупции? Поскольку они не хранятся на той же странице данных, что и поля, не связанные с заметками, а вместо этого все, что находится на главной странице данных записи, - это указатель на какую-то другую страницу данных (или набор страниц данных, если это большой кусок данные), где хранятся фактические данные памятки. Если этого не сделать, запись с запиской в ней очень быстро превысит максимальную длину записи.
Указатель относительно легко повреждается, чаще всего из-за фатальной проблемы при редактировании в связанном элементе управления. Редактирование с несвязанным элементом управления не устраняет проблему полностью, но означает, что время, в течение которого вы подвергаетесь опасности, очень и очень мало (т. Е. Время, необходимое для выполнения этих двух строк кода в событии AfterUpdate) .