Mostrando las entradas con la etiqueta Access. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Access. Mostrar todas las entradas

10 septiembre 2010

Abrir archivo MDB protegido con contraseña

Aunque no lo parezca todavía son muchas las aplicaciones que utilizan los archivos MDB de Microsoft Access como base de datos.

...un inconveniente con el que solemos toparnos es la limitación de cada aplicación para manipular la información que sabemos que se encuentra en el archivo, pero cuyo acceso casi siempre está protegido con contraseña.

También son muchos los programas que pueden ser descargados para leer la contraseña del archivo, y en más de algún lugar está el código fuente en algún lenguaje para quienes quieran hacerlo de esta forma, sin embargo, un programa que me llamó la atención es Access PassView, principalmente por su reducido tamaño y además no requiere instalación.

25 noviembre 2008

Comprobar si una tabla existe en Microsoft Access / VBA

Casi siempre, para un mismo problema, hay más de una solución.

Cuando trabajamos con VBA en Microsoft Access y deseamos comprobar la existencia de una tabla, son tres las formas de tratar el problema que vienen de inmediato a nuestra mente.

1) Recorrer los elementos de la colección TableDefs, para encontrar el elemento deseado.

Private Function TableExistsEx(ByVal Name As String) As Boolean
Dim i As Integer
Dim logEx As Boolean

Name = LCase(Name)
For i = vbEmpty To (CurrentDb.TableDefs.Count - 1)
If LCase(CurrentDb.TableDefs(i).Name) = Name Then
logEx = True
Exit For
End If
Next

TableExistsEx = logEx
End Function

2) Asignar el elemento de la colección TableDefs a un objeto de tal forma que al no existir nos genere un error.

Private Function TableExists(ByVal Name As String) As Boolean
Dim def As DAO.TableDef

On Local Error Resume Next

Set def = CurrentDb.TableDefs(Name)
TableExists = (Err.Number = vbEmpty)

On Local Error GoTo 0

End Function

3) Consultar la tabla MSysObjects

Private Function TableExists(ByVal Name As String) As Boolean

TableExists = _
Not (Nz(DLookup("[Name]", "MSysObjects", _
"[Name]='" & _
Name & "' And [Type]=6"), _
"No") = "No")
End Function