Categoría: Bases de Datos
Inhabilitar la pulsacion de la tecla MAYUSCULAS para evitar la edicion de bases de datos
Cuando se protege una base de datos se suele hacer uso de una macro Autoexec o bien de las opciones de Herramientas/Inicio, segun las versiones de Access. Sin embargo, se puede volver a tomar el control manteniendo pulsada la tecla MAYUSCULAS mientras se abre el archivo MDB.
A partir de la version 7.0 se puede inhabilitar el uso de dicha tecla estableciendo una nueva propiedad llamada AllowBypassKey, la cual debe ser añadida a la base de datos y asignarla el valor True (Verdadero) o False (Falso). Cuando es False, la tecla MAYUSCULAS queda inhabilitada, y cuando es True, queda habilitada. Esta propiedad se puede establecer usando una macro o Visual Basic.
Para establecer la propiedad AllowBypassKey usando una macro o Visual Basic, se debe hacer usando el metodo CreateProperty y anexarla a la coleccion Properties del objeto Database.
Cuando se depure una aplicacion, hay que asegurarse de que la propiedad AllowBypassKey esta establecida a True.
Los valores de esta propiedad no son efectivos hasta la proxima vez que se abre la base de datos.
Ejemplo:
Sub SetBypass(rbFlag As Boolean)
On Error GoTo SetBypass_Error
Dim db As DATABASE
Set db = CurrentDb
db.Properties!AllowBypassKey = rbFlag
SetByPass_Exit:
Exit Sub
SetBypass_Error:
If Err = 3270 Then 'La propiedad AllowBypassKey no existe
db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, rbFlag)
Resume Next
Else
'Algun otro error
MsgBox "Error inesperado: " & Error$ & " (" & Err & ")"
Resume SetByPass_Exit
End If
End Sub
Este procedimiento tiene un argumento booleano. Se establece la propiedad AllowBypassKey igual al argumento rbFlag. Si la propiedad no existe, se implementa el error 3270, de forma que el procedimiento cree y añada la propiedad a la coleccion de propiedades de la base de datos. |