Восстановление удаленной таблицы в MS Access'97
Автор выуживал информацию Михаил ...   
29.07.2001 г.
Если вы случайно удалили нужную таблицу, не бейте себя кулаками по голове.
Остановитесь. НЕ ЗАКРЫВАЙТЕ БАЗУ!
  • Microsoft Access for Windows 95, version 7.0
  • Microsoft Access 97

Если вы случайно удалили нужную таблицу, не бейте себя кулаками по голове.
Остановитесь. НЕ ЗАКРЫВАЙТЕ БАЗУ!

  • Microsoft Access for Windows 95, version 7.0
  • Microsoft Access 97


ПРОБЛЕМА

Необходимо восстановить таблицу базы данных MS Access 97 после ее удаления.

РЕШЕНИЕ

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

  1. База данных не закрывалась после удаления таблицы.
  2. База данных не сжималась после удаления таблицы.
  3. Таблица была удалена с помощью пользовательского интерфейса MS Access 97.

Для восстановления удаленной таблицы необходимо создать, а затем выполнить определенную функцию, написанную с помощью Visual Basic for Applications. Для этого выполните следующие действия:

  1. В окне базы данных перейдите на вкладку "Модули" и нажмите кнопку "Создать".
  2. Наберите на клавиатуре или скопируйте через буфер обмена следующую функцию на VBA:

          Function undo()          Dim db As Database, strTablename As String        Dim i As Integer, StrSqlString As String          Set db = CurrentDb()          For i = 0 To db.TableDefs.Count - 1          If Left(db.TableDefs(i).Name, 4) = "~tmp" Then           strTablename = db.TableDefs(i).Name           StrSqlString = "SELECT DISTINCTROW [" & strTablename & _             "].* INTO MyUndeletedTable FROM [" & strTablename & "];"           DoCmd.SetWarnings False           DoCmd.RunSQL StrSqlString           DoCmd.SetWarnings True           MsgBox "A table has been restored as MyUndeletedTable", _             vbOKOnly,"Restored"           GoTo Exit_undo        End If        Next i        MsgBox "No Recoverable Tables Found", vbOKOnly, "Not Found"          Exit_undo:           Set db = Nothing           Exit Function        Err_undo:           MsgBox Err.Description           Resume Exit_undo        End Function 

  3. В меню "Отладка" укажите пункт "Компилировать и сохранить все модули".
  4. Сохраните созданный модуль как RecoverTable.
  5. Чтобы выполнить созданную функцию, необходимо перейди в окно отладки, набрать "?undo()" (без кавычек) и нажать клавишу ENTER.

Таким образом, таблица, удаленная последней, будет восстановлена.

По материалам Microsoft


Просмотров: 13476

  Ваш коментарий будет первым

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code