Аксесс
Поломалася моя база аксес причем много тем есть да понимаю но проблема весьма нетипичная так что почитайте вопрос и может кто подскажет какой нибудь еще вариант
Кароче: база mdb, весом 380 мб (размер сжатой базы).
Как поломали: один ну очень умный дядя пытался открыть ее по сети, без одной необходимой библиотеки она открылась только с хорошим матерком, закрыв ее он начал ее копировать, а другой дядя в это время открывал ее же с локального компа, обломавшись и выяснив почему он стал ждать. Когда копирование закончилось и там и там база перестала открываться. Видимо первый умный дядя что-то успел натворить с ней, когда пытался открыть ее удаленно. Под открыть удаленно задесь понимается, что этот простой человек, просто запустил базу через общие папки в сетевом окружении. Вообщем стоит только отлучится и поломать смогут все... sad.
Сейчас: база открывается, но на все действия вылезает ошибка - В файле MAccess обнаружено повреждение...ну т.д. с предложением воспользоваться резервной копией. Есть правда исключения: можно открыть в конструкторе таблицы, но нельзя их открыть в таблично виде. Запросы открываются в конструкторе и при этом можно создать запрос по таблицам и он выведет всю информацию .Несколько форм открываются в конструкторе, но до VB кода не добраться.
Проьовал: на все попытки сжать/восстановить, /DECOMPILE /Repair, экспортировать/импортировать вываливается с указанной выше ошибкой. JetComp, mdb_repair и их комбинации отрабатывают номана, но результат после них такой же, нет они правда базу немного сжали, но вот модули с кодом все равно не открываются. AccessRecover 2.2 вообще сказал что с базой все ОК, типа сжимать ее не надо.
Задача: специфика базы такова, что абсолютно наплевать на табличные данные - постоянно закачиваются новые, взамен старых. Есть резервная копия базы месячной давности, за это время изменись только модули с кодом, в которых появились новые функции с динам. запросами и т.д. То бишь, из этой поломанной базы самое главное извлечь VB модули!!!
Это добиться я не смог, единственное что, открыв файл mdb в текстовом редакторе, я смог найти некоторые нужные мне куски кода, но вытащить все содержимое модуля не смог, уже очень там все разбросано и исковеркано.
Спрашивается: можно ли еще что-нибудь сделать, что бы вытащить содержимое модулей или можно забросить эту идею и приступить к написанию заново недастающих кусков кода?
P.S. надеюсь никого не утомил, но хоть посмеятся можно... до сих пор не понимаю как эти чуваки умудрилсь т.о. поломать базу. Да.. дурное дело не хитрое.
Для того, чтобы ответить на вопрос, требуется авторизоваться или зарегистрироваться
опробуй вот эту утилиту http://www.erepairaccess.com/ru/ eRepair Access или следующие шаги:
Чтобы включить Администратор рабочих групп (Workgroup Administrator tool) в MS Access 2013 надо сделать следующее: 1. Открываем MS Access и создаём пустую базу. 2. Нажимаем CTRL+G, чтобы открыть Immediate window: 3. В окне Immediate вводим DoCmd.RunCommand acCmdWorkgroupAdministrator и нажимаем Ввод (Enter). 4. В открывшемся окне
нажимаем кнопку «Связь» и выбираем *.mdw файл. 5. Перезапускаем MS Access.
Как чинить поврежденный фаил
Не пытайтесь ремонтировать поврежденные формы, отчеты, макросы и модули . Перед выполнением восстановления, пожалуйста, убедитесь, что выполнили следующее условие :
- Создайте резервную копию поврежденного файла базы данных (MDB).
- Удалите файл с расширением LDB, если таковой имеется. Перед удалением этого файла необходимо закрыть соответствующий файл с расширением MDB.
Файл с расширением LDB используется для идентификации заблокированных записей в совместно используемой базе данных, а также пользователя, который их заблокировал. Если база данных используется совместно, при создании файла LDB ему присваивается имя соответствующей базы данных (файла MDB). Например, при открытии (для совместного использования) базы данных Northwind.mdb, расположенной в папке C:\Msoffice\Access, в этой же папке автоматически создается файл с именем Northwind.ldb. Файл LDB автоматически удаляется после того, как с базой данных завершает работу последний пользователь. Исключения из этого правила представляют ситуации, когда последний пользователь не имеет разрешений на удаление для папки с файлом MDB и когда база данных повреждена. В файле LDB содержится список пользователей, работающих с базой данных в данный момент. 3. Запустите средство сжатия и восстановления. Для этого выполните перечисленные ниже действия. a. Если база данных открыта, закройте ее. b. В меню Сервис выберите пункт Служебные программы, а затем — пункт Сжать и восстановить базу данных. c. В диалоговом окне База данных для сжатия выберите файл, который требуется сжать, и нажмите кнопку Сжать. d. В диалоговом окне Сжатие базы данных под именем введите новое имя файла и нажмите кнопку Сохранить.
- Ответ пока никому не понравился
почитать