Deshabilitar ventana base de datos ACCESS 2007

Tengo una base de datos en ACCESS y me gustaría deshabilitar la ventana base de datos para que no se pueda modificar. Me han dicho que se puede hacer con una macro, pero no sé cuál es el proceso. Mi nivel de VBA es limitado.

3 Respuestas

Respuesta
Existen muchísimas formas de proteger una base de datos, pero casi todas ellas incluyen varios métodos a la vez. Personalmente te diré que en las mías uso una combinación de recursos, como por ejemplo las opciones que hallarás pulsando en Herramientas y luego en Inicio. Se abre así un cuadro de diálogo en el que desmarcando la opción "Presentar ventana de base de datos", ésta no se verá al iniciar la aplicación.
Además puedes impedir que se vean los objetos de tu BD, si pulsando en Herramietnas y luego en Opciones, desmarcas la casilla "Objetos ocultos".
Pero todo esto no impide que pueda hacederse a la ventana de base de datos (solo habría que hacer lo contrario a lo que he dicho), por eso además debe integrarse un Módulo, mediante el cual se impida acceder a ella. Este modulo es el siguiente:
Option Compare Database
Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, True
End Sub
Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270 '
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then 'No se encontró la propiedad.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Error desconocido.
ChangeProperty = False
Resume Change_Bye
End If
End Function
El cual debe ejecutarse (desde la misma venta de Visual basic) a True (resaltado en el código, en negrita) para que pueda verse la ventana de base de datos, o cambiándolo a False, en caso de que deseemos que no se pueda acceder a ella.
Gracias por tu ayuda.
Lo de deshabilitar la ventana base de datos y los de los objetos ocultos ya lo sabía. Hasta ahora lo hacía así, pero abriendo la bd con un formulario... al pulsar el shift se anula la apertura del formulario y entonces deja visible el icono de OFFICE para poder modificarla como tu dices.
Para finalizar...
¿En qué propiedad de qué formulario inserto el código VB?
Exactamente. Pues este código impide precisamente eso, que al utilizar el Shift, se muestre la ventana de BD.
Debes guardar el código en un Módulo y ejecutarlo desde la ventana de Visual Basic (a True o a False, dependiendo de si deseas mostrar la ventana de BD o no). Verás el resultado la próxima vez que abras la BD, en ambos casos
Antes de ejecutar el código, te recomiendo que hagas una copia de seguridad de la BD (todas las precauciones son pocas)
Pero si esta BD se abre en otro PC que no tiene el código de VB modificado, ¿la BD quedará otra vez desprotegida?
Vamos a ver. El módulo está en la BD, por tanto, una vez que lo ejecutes a False, da igual donde la abras.
Solo cabe la posibilidad de abrir el código Visual Basic para ejecutar a True el Módulo, pero me imagino que también el acceso al proyecto de Visual Basic lo tendrías protegido, con lo cual solo tú podrías acceder a realizar esos cambios.
Lo he probado pero sigue apareciendo el icono de office.
Supongo que lo que ACCESS hace es ejecutar el módulo, pero el icono de OFFICE sigue saliendo.
No deshabilita la ventana base de datos
Espera, Espera, a lo mejor no te he entendido bien...
El Módulo deshabilita la ventana de la base de datos, para que no se pueda acceder a los objetos de la BD, pero no la ventana de Access. La ventana de Access si que queda abierta.
Pero si la ventana de ACCESS queda abierta...
La BD se puede modificar...
Si la ventana de ACCESS queda abierta, la BD se puede modificar haciendo click en el icono de OFFICE y modificando las opciones de ACCESS.
Aunque la ventana de Access queda abierta, en el´comando "Herramientas" no estarán disponibles las selección de "Inicio" ni "Opciones". Por tanto no se puede modificar nada
Una vez que hayas ejecutado el módulo a False, ya no será posible modificar nada en esa BD.
De todas formas, compruébalo tu mismo.
Respuesta
1
No conozco la version 2007, de todas maneras, si quieres explicar con más claridad lo que quieres te buscaré alguna solución, si puedo
Lo que hago hasta ahora es que se abra un formulario al abrir la base de datos, pero este método no funciona por que pulsando la tecla shift, se anula la apertura del formulario y se puede acceder a las opciones de ACCESS. Lo que quiero hacer es que nadie pueda acceder a las tablas, formularios, consultas... de forma que no aparezca la ventana base de datos ni el símbolo de OFFICE.
Gracias
Pues lo único que se me ocurre es que generes un archivo MDE.
Lo que hace esto es compilar y ocultar la información de desarrollo, y no se tiene acceso al diseño, sólo a la ejecución
guarda el original, creo que no se puede descompilar
igualmente, en la web de M$ hay una utilidad que puedes instalar en tus clientes para que puedan abrir tu BBDD pero sin llegar a poder modificarla, más o menos es como el Acrobat Reader con los archivos PDF, puede visualizarlos, si quien lo ha hecho quiere que entres datos, puedes hacerlo, pero no puedes cambiar ni la estructura ni el comportamiento del documento
saludos
Respuesta
1
Yo desde vba no lo conozco, pero desde el propio access, puedes eliminar todos los botones y acceso a tablas y demás. Esto es desde:
Inicio>opciones de access>base de datos actual y ahí tienes 2 opciones
EXPLORACIÓN
OPCIONES DE BARRAS DE HERRAMIENTAS Y DE LA CINTA OPCIONES
Jugando con estas 2 opciones podrás conseguir que no aparezcan botones ni nada, eso si la ventana de access si que te va a aparecer.
Gracias por tu interés.
Lo que quiero hacer es que no me aparezca la ventana de access, por que si la ventana está visible se puede modificar todo.
Un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas