7 de novembro de 2007

Como recuperar tabelas eliminadas de uma base de dados no Access 2000, Access 2002 ou Access 2003

NOTA : O código de exemplo contido utiliza o Microsoft Data Access Objects. Para que este código seja executado correctamente, tem de referencia o Microsoft DAO 3.6 Object Library. Para fazê-lo, clique em References no menu Ferramentas no Editor do Visual Basic, e certifique-se que a caixa de verificação Microsoft DAO 3.6 Object Library está seleccionada।

1.Abrir a base de dados no Microsoft Access.

2.Na janela Base de Dados, clique em Módulos em Objectos , e em seguida, clique em Novo .

3.Escreva ou cole o código que se segue no módulo que acabou de criar:

 
Function RecoverDeletedTable()
On Error GoTo ExitHere

'*Declarations*
Dim db As DAO.Database
Dim strTableName As String
Dim strSQL As String
Dim intCount As Integer
Dim blnRestored As Boolean

'*Init*
Set db = CurrentDb()

'*Procedure*
For intCount = 0 To db.TableDefs.Count - 1
strTableName = db.TableDefs(intCount).Name
If Left(strTableName, 4) = "~tmp" Then
strSQL = "SELECT DISTINCTROW [" & strTableName & "].* INTO " & Mid(strTableName, 5) & " FROM [" & strTableName & "];"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
MsgBox "A deleted table has been restored, using the name '" & Mid(strTableName, 5) & "'", vbOKOnly, "Restored"
blnRestored = True
End If
Next intCount

If blnRestored = False Then
MsgBox "No recoverable tables found", vbOKOnly
End If

'*EXIT/ERROR*
ExitHere:
DoCmd.SetWarnings True
Set db = Nothing
Exit Function

ErrorHandler:
MsgBox Err.Description
Resume ExitHere

End Function

4.No menu Debug , clique em Compile Nome da base de dados o nome da base de dados .

5.Guarde o módulo como RecoverTable. Para testar esta função, primeiro criar duas tabelas, adicionar linhas, e em seguida, elimine estas duas tabelas.

6.Escreva a seguinte linha na janela Immediate e prima ENTER:

 RecoverDeletedTable

Sem comentários:

Enviar um comentário

Like