Можете ли вы установить свойство MaxLength или добавить ограничение на количество символов в поле Access Long Text?

У меня есть форма доступа, которую я создал для пользователей. Форма подключена к таблице Access, а не к связанной таблице, потому что несколько пользователей должны будут одновременно обновить эту форму и подключенную таблицу, и я продолжал сталкиваться с ошибками параллелизма при использовании связанной таблицы. В подключенной таблице было множество коротких текстовых полей, и я добавил ограничение на количество символов там, где это было необходимо.

Пользователи начинают превышать выделенный размер записи (потому что у нас около 30 полей), поэтому они получат ошибку «Запись слишком велика», и она заблокирует их запись, и мне придется исправить всю базу данных Access, так как это не поможет. t позвольте мне удалить или изменить заблокированную запись. Чтобы обойти это, я сделал некоторые текстовые поля длинными текстовыми полями. Однако мне по-прежнему нужно установить ограничение на количество символов, потому что их записи в форме и подключенной таблице отправляются на информационные панели с установленным количеством символов, которое будет соответствовать информационной панели.

Я уже добавил код, чтобы показать пользователям их количество символов и ограничение (например, 230/250 используемых символов). Но, поскольку я изменил текстовые поля на длинный текст, я больше не могу устанавливать ограничение на количество символов, как в случае с короткими текстовыми полями. Я попытался добавить свойство MaxLength к полям с длинным текстом, но это не сработало.

Кто-нибудь знает, как я могу добавить ограничение на количество символов в длинное текстовое поле, не меняя его на короткое текстовое поле?

Спасибо!


person aleshiaayers    schedule 13.07.2020    source источник
comment
Я никогда не сталкивался с ошибкой Record Too Large. Многопользовательская БД должна иметь раздельный дизайн.   -  person June7    schedule 14.07.2020
comment
Как указано выше, многопользовательская база данных должна быть разделенной..   -  person Kostas K.    schedule 14.07.2020


Ответы (3)


Вы можете ограничить ввод в своей форме. Используя событие Form.BeforeUpdate, вы можете захватить входные данные до того, как они будут записаны в базу данных. Здесь вы можете отменить обновление и предоставить пользователю сообщение об ошибке о том, почему.

30 полей слишком много для одной таблицы. Вам нужно исследовать нормализацию базы данных. Разбиение таблиц на более мелкие логические объекты имеет много улучшений, одно из которых заключается в том, что у вас не будет этих проблем.

person HackSlash    schedule 13.07.2020

Зачем использовать длинный текст, если ваши ответы ограничены 250 символами — это максимальная длина короткого текста? Я согласен, что 30 полей — это довольно много для одной таблицы — это не неслыханно, но редко. Анализ структуры вашей базы данных может выявить скрытые сущности, поэтому может потребоваться нормализация.

person Orange    schedule 19.07.2020

Если вы хотите установить ограничение на уровне таблицы, вы можете использовать параметр «До изменения» макрос данных:

введите здесь описание изображения

person Gord Thompson    schedule 19.07.2020