Access VBA "Рекорд слишком большой" - PullRequest
0 голосов
/ 20 сентября 2018

Я не нашел ответа на этот вопрос в сети: может быть, ошибка Access?

У меня Windows 10 и Access 2016. У меня 102 поля и 40 записей.Есть 14 длинных текстовых полей для каждой записи.Ни одна из длинных текстовых записей не содержит более 200 символов.Для рассматриваемых записей установлено значение «Длинный текст» (раньше использовалось «Заметка» в предыдущих версиях Access).

Программное обеспечение, которое я написал и использовал в течение 5 лет с Access 2010, импортирует книгу Excel.Теперь я использую то же самое программное обеспечение с Access 2016 и начал получать сообщение об ошибке, описанной здесь.Это 4-я база данных, которую я настроил с помощью Access 2016, и я впервые вижу эту проблему.

Когда я попытался ввести записи в одну или две ячейки в поле «длинный текст» в записи, возникла ошибка, говорящая «Запись слишком велика».То же поле на других записях работает как положено.Только ячейка в данной записи генерирует ошибку.Как я уже сказал, я никогда не видел эту ошибку в других версиях Access.

Я выполнил 1) «сжатие и восстановление», 2) экспортировал таблицу в новую таблицу и 3) экспортировал таблицу в Excel и, с новой записью Access, вырезал и вставлял вручную все 102записей.Пункт № 3) работает большую часть времени, усилия 1) и 2) никогда не решали проблему.

Инцидент, побуждающий меня обратиться за помощью, состоит в том, что на этот раз, выполнив шаг 3) выше, с новой записью, у меня есть одна ячейка, которая снова генерирует ошибку «слишком большая запись».Я заметил, что в ячейке ввода в Excel, из которой я копировал, было несколько точек с запятой: я удалил их, безуспешно пытался вырезать и вставлять в ячейку доступа.Я попытался ввести запись в ячейку вместо вставки и получить ошибку.

Я действительно не понимаю, в чем проблема с этой проблемой, и мне нужна помощь.Кто-нибудь когда-нибудь сталкивался с этой проблемой?

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

спасибо за все комментарии.Я не могу опубликовать код.Однако я смог найти решение этой проблемы, как описано ниже, на случай, если другие окажутся в таком же затруднительном положении.

  1. Экспортируйте поврежденную таблицу в Excel, сохраните форматирование.
  2. Экспортоскорбление таблицы для доступа, та же база данных, сохранение определения, не экспортируйте данные.
  3. Измените несколько (оскорбительных) полей в пустой (новой) таблице с «Короткий текст» на «Длинный текст» (Заметка).
  4. Добавьте экспортированный лист Excel, созданный на шаге 1., в пустую таблицу, созданную на шаге 2.

Эти шаги решили мою проблему и избавили меня от мучительного застревания.Спасибо всем за помощь и идеи.v / r, Джонни

0 голосов
/ 17 октября 2018

Существует вероятность того, что вы обнаружили ошибку, связанную с импортом из Excel, в Microsoft Access.

Создайте заново таблицу, чтобы обойти дефект и получить правильные внутренние данные.

Проблема заключается в том, чтов больших таблицах автоматически создается при импорте из Excel.Даже если длина или количество их полей не превышает какие-либо ограничения, вы все равно можете начать получать сообщение об ошибке "Слишком большая запись".Выполнение действия Сжатие и восстановление не устраняет эту проблему.

Поэтому, если вы уверены, что ваша структура данных не превышает ограничения доступа, а затем заново создаете таблицу с ,те же поля и их длины , ошибка исчезла.

В качестве доказательства, в настоящее время в моей базе данных есть две таблицы, обе с идентичной внутренней структурой.Один, созданный в отчетах об импорте «Слишком большая запись», и тот, который я создал вручную (путем копирования-вставки полей в режиме конструктора), в порядке.

Таким образом, мы можем сказать, что при импорте из ExcelСуществует определенная ошибка Access, которая не была исправлена ​​на сегодняшний день (2018-10-17) в Access 2016. Обходите ее вышеуказанным способом.

0 голосов
/ 20 сентября 2018

У меня 102 поля и 40 записей.Есть 14 длинных текстовых полей для каждой записи.Ни одна из длинных текстовых записей не содержит более 200 символов.

Я бы вчера реорганизовал схему.Это точно для чего нужны отношения один-к-одному.Переместить подмножество столбцов в другую таблицу, связать ПК с ПК.102 столбца - это слишком много проблем, помещенных в одну таблицу.Разбейте его - независимо от ошибки «запись слишком большая».

При этом, если ни одна из длинных текстовых записей не содержит более 200 символов, то почему они длинный текст в первомместо?Я бы сделал их символьными столбцами переменной длины (это будет nvarchar на SQL Server, не уверен насчет Access), возможно, с емкостью 255 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...