2014-09-18 3 views
-1

У меня есть база данных доступа, которая использовалась в течение многих лет, преобразованная из Access 2000 в 2007 и была в порядке. За последние пару недель он делал странные вещи!MS Access database problem

Существует форма для «редактирования» записи. Когда пользователь нажал кнопку, чтобы открыть эту форму, появился маленький белый ящик и сказал «Record Deleted».

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

Итак, я не могу получить объекты. Единственный вариант, который у меня был, это восстановить с предыдущей ночной резервной копии. Это означало, что пользователи потеряли всю свою работу в течение дня. Сегодня, через неделю, это произошло снова. Все пользователи работали, потому что мне пришлось восстанавливать резервные копии.

Я не знаю, с чего начать беспокоиться, снимать это, так как я не могу попасть в него, когда он стал поврежденным. Ищите любые предложения, чтобы отладить это. Я могу использовать копию базы данных, которую я восстановил.

Thanks

+0

Thnx Marc_s (Позор мне) – MarryMan

ответ

0

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

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

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

0

Прежде всего, проверьте, не запущены ли какие-либо автоматические VBA-коды или макросы в OnOpen, OnLoad, OnCurrent, AfterUpdate, OnDirty и т. Д. Событиях форм устранения неполадок. Просто откройте окно VBA и посмотрите код на модуле конкретной формы. Или в случае макросов, открыть форму в представлении дизайна и проверить вкладку «Событие» в Листе свойств (и то же самое для определенных кнопок, текстовых полей и т. Д.). Могут быть DoCmd.RunCommands, возникающие, когда пользователи взаимодействуют с элементами управления формой.

Кроме того, если вы не можете открывать формы или иметь дело с поврежденной базой данных, подумайте о начале с пустым файлом доступа .accdb и импортируйте все объекты из предыдущего файла Access 2000 .mdb. И если определенные элементы управления не работают должным образом, воссоздайте их по мере необходимости.

Как уже упоминалось выше, разделите базу данных между BackEnd (только таблицами) и FrontEnd (формы, запросы, макросы, модули), которые предотвращают повреждение, эффективно запускают системы, поскольку только данные передаются по сети, а не целые элементы приложения, и в целом способствует лучшей многопользовательской среде. Каждый пользователь может иметь копии FE на своих локальных машинах, но все подключаются к одной БЭ в общей сети. Чтобы помочь, Access 2007-2013 имеет кнопку для этого на ленте в разделе Инструменты базы данных.

Смежные вопросы