Программно проверить на наличие повреждений базы данных Access? - PullRequest
2 голосов
/ 26 ноября 2009

Есть ли способ программной проверки на предмет повреждения базы данных в Access 2003?

Мой проект разработки стал настолько сложным, что после дня программирования трудно вручную проверить все объекты, чтобы увидеть, не поврежден ли какой-нибудь небольшой объект управления, форма, отчет, запрос или код. У меня уже есть данные, разделенные на отдельную базу данных SQL, хранящуюся на другом компьютере, и этот проект является просто интерфейсным приложением для работы с данными.

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

Есть идеи? Заранее спасибо за любые указатели!

ИЗДАНО 12/03/2009 @ 11: 51

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

Ответы [ 3 ]

2 голосов
/ 26 ноября 2009

Возможно, вы захотите взглянуть на: Можно ли программным способом обнаружить поврежденные таблицы базы данных Access 2007?

Я склонен хранить копии важных баз данных при каждом сжатии и ремонте и сравнивать новую базу данных с предыдущей. Вы также можете проверить нестандартные символы.

1 голос
/ 28 ноября 2009

Ни Компактирование / Восстановление, ни Декомпиляция / Перекомпиляция не обнаруживают все проблемы с повреждениями, хотя вы должны делать это в любом случае.

Я использую функцию для экспорта всех контейнерных документов (и QueryDef) с помощью SaveAsText в папку с отметкой даты / времени и использую ее регулярно в течение дня. Если я подозреваю какое-либо повреждение, я создаю новый mdb и использую LoadFromText для воссоздания объектов.

1 голос
/ 27 ноября 2009

Правильная практика компиляции предотвратит повреждение проекта VBA (о чем вы здесь говорите).

Что влечет за собой:

  1. используйте OPTION EXPLICIT во всех модулях.

  2. отключить COMPILE ON DEMAND в опциях VBE.

  3. регулярно компилируйте ваш код во время работы.

  4. периодически (например, один раз в день после полного дня кодирования) декомпилировать и перекомпилировать код.

Если вы сделаете это, вы никогда не столкнетесь с коррупцией в первую очередь, поэтому вам не нужно будет проверять ее (что невозможно в первую очередь).

...