Palabras clave: recuperar, restaurar, tablas, borradas, eliminadas
Autor: Happy
Extraído de: La web del Búho
Pregunta
¿Alguna posibilidad de recuperar una tabla borrada?
Responde Happy
Por lo que conozco (poco, la verdad), cuando una tabla se borra MANUALMENTE (quiero decir que no lo ha sido a través de código) lo que hace Access en realidad es renombrarla y cambiar sus atributos a oculto y de sistema. Con lo cual la tabla no ha sido borrada de momento.
La vida de esta tabla por lo que yo se, dura mientras:
1- no se cierre la bd
2- no se compacte la bd (claro, para que se compacte la bd, primero tiene que cerrarse)
3- no se cree una nueva tabla (pues al parecer, la nueva tabla ocuparía el lugar en algún sitio de la tabla borrada)
Sabiendo esto y mientras no haya ocurrido ninguna de las 3 condiciones anteriormente descritas (ya digo que son las que yo he podido comprobar), podríamos ejecutar una función como la siguiente para recuperar esa tabla borrada accidentalmente (a la función hay que pasarle como argumento el nombre de la tabla recuperada, y la función devolverá un valor True/False si ha tenido éxito o no):
'********** Código **************
' Función para recuperar una tabla
' borrada manual y accidentalmente
' siempre que:
'
' 1-No se haya cerrado la BD
' 2-No se haya compactado la BD
' 3-No se haya creado una nueva
' tabla.
'
' desde el momento en el que se
' haya borrado la tabla.
'
' Autor: Juan M. Afán de Ribera
' Fecha: 22/04/2003
'
' ¿Por qué?: Pues porque sí
'
Function recuperarTabla( _
nomTabla As String) As Boolean
Dim tabla As Object
Dim cadSQL As String
For Each tabla In CurrentDb.TableDefs
If Left(tabla.Name, 4) = "~TMP" Then
cadSQL = "SELECT * INTO [" & nomTabla & _
"] FROM [" & tabla.Name & "];"
CurrentDb.Execute cadSQL
recuperarTabla = True
Exit For
End If
Next
End Function
'************ Fin código **************
Esto es lo que yo conozco sobre el tema. A ver si alguien aporta más cosas y entre todos conocemos más sobre esto.