Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
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

ValorDescripció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

 

Última actualización: 19/4/2005