Base de datos : Access 2003. Desactivar la seguridad para una sola base de datos
|
Autor/es: Francisco Javier García Aguado |
| Pregunta : Sé cómo desactivar las advertencias de seguridad en Access 2003, tanto a través de las opciones del menú, como a través de código. Pero de esta manera desactivo permanentemente esas advertencias, y eso no es lo que me interesa. Quisiera saber si existe algún código que únicamente desactive esas advertencias de seguridad al ejecutar una determinada base de datos. ¿Es eso posible? |
Respuesta : Sí, es posible. Debemos utilizar una propiedad del objeto Application llamada AutomationSecurity. Esta propiedad se puede utilizar, como su nombre indica, mediante Automatización y tiene la particularidad de cambiar el nivel de seguridad en Access. Pero esto sólo sucederá para una sola sesión. El objeto al que se cambia el nivel de seguridad es solamente una instancia temporal de Access. La siguiente vez que Access se abra, los niveles de seguridad serán los que tenía anteriormente. Nada habrá cambiado.
Esta propiedad puede tomar tres valores: |
Valores AutomationSecurity | Valor | Descripción | | 1 | (Low) Nivel bajo. No ofrece protección contra macros inseguras. | | 2 | (Medium) Nivel medio. Se puede elegir entre ejecutar o no ejecutar macros que podrían no ser seguras. | | 3 | (High) Nivel alto. Sólo se ejecutarán macros firmadas digitalmente. Las macros sin esta característica se deshabilitan automáticamente |
|
Lo más probable es que nuestro código sea utilizado desde un entorno de programación externo, como puede ser un pequeño programa de Visual Basic o un archivo de texto que utilice Scripting (con extensión .vbs)
Este código, principalmente lo que hará será:
- abrir una instancia de la aplicación Access
- comprobar si se trata de Access 2003
- bajar la seguridad al nivel 1 (Low - bajo)
- abrir la base de datos que nos interese
Copia esto en tu programa Visual Basic o en el fichero con extensión .VBS |
Dim oApp ' As Object
On Error Resume Next
Set oApp = CreateObject("Access.Application")
If oApp.Version = "11.0" Then
oApp.AutomationSecurity = 1
End If
oApp.OpenCurrentDatabase "C:\Mi_Base.mdb"
oApp.Visible = True
Set oApp = Nothing
|
Ejemplos: |
Temas relacionados: Advertencias de seguridad en Access 2003 Activar/Desactivar advertencias de seguridad a través de código |