Восстановление удалённой таблицы Access
Пишу как памятку для самого себя. Нечаянно удалил нужную мне таблицу в Access-е, несколько часов лазил по интернету, искал, как её восстановить. Оказалось, такое простое дело везде описано так сложно и муторно, да ещё большинство способов не работают. (Не знаю почему, может, несовместимость версий Акцессов). Накачал тучу восстановительных программ, все были демоверсиями, нашёл одну крякнутую, после кряка заголовок поменялся с "Demo" на "Registered" - а восстанавливать всё равно не захотела, просит денег.
В общем, после долгих поисков наткнулся на http://am.rusimport.ru/MsAccess/topic.aspx?ID=310
Описанный там способ у меня тоже, естественно, не заработал. Тогда я прочитал самый последний комментарий:
---
В таких случаях я делаю примерно так:
CurrentDb.Execute "SELECT [~TMPCLP572131].* INTO [Таблица1] FROM [~TMPCLP572131];"
Где ~TMPCLP572131 имя из таблицы MSysObjects
---
Ничего не понял. Попробовал вставить соотв. код в модуль Visual Basic, не проканало. Осенило, вставил его в SQL-запрос. Опять не прошло. Опять осенило. Вот конечный итог моих прозрений:
1. Щёлкаем в Акцессе "Сервис - Параметры - Вид". Ставим галочку: показать системные объекты.
2. Открываем таблицу MSysObjects и находим в поле Name имя удалённой таблицы (должно выглядеть как ~TMPCL...).
3. Создаём SQL-запрос:
---
SELECT [~TMPCLP...].* INTO НоваяТаблица
FROM [~TMPCLP...];
---
где ~TMPCLP... - имя удалённой таблицы из предыдущего действия.
4. Сохраняем запрос под любым именем и запускаем на выполнение. Отвечаем "да" на все вопросы. В результате создаётся новая таблица с именем НоваяТаблица, являющаяся точной копией удалённой.
(Прим.: для успеха операции файл *.mdb после удаления таблицы не должен быть сжат. Кажется, закрывать окно базы после удаления таблицы тоже нельзя)