Modificar el entorno ACCESS

¿Existe forma de modificar el entorno de un formulario vía código VBA al iniciar Access?
¿Sabes dónde encuentro estas opciones de programación?
La idea es obtener una aplicación final sin que otro usuario pueda modificar los formularios o el código mismo etc...

1 respuesta

Respuesta
1
Lo ideal es que al terminar tu aplicación crees un archivo MDE:
Crear un archivo MDE protege los elementos (Formularios, informes, macros, módulos) Pero ojo, hay que guardar una copia del mdb ya que el mde no permite cambios en el diseño. Así que para el diseño seguís trabajando con el mdb y cuando tenés una "nueva versión" la pasás a mde y lo reemplazás por el anterior...
- Un archivo mde se obtiene por medio de Herramientas >>>> Utilidad de la base de datos >>> Crear archivo MDE...
- En caso de que esta opción aparezca deshabilitada (atenuada) se deberá convertir la base a una versión superior por medio de Herramientas >>> Utilidad de la base de datos >>> Convertir base de datos.
- Si al convertir la base en mde se recibe un mensaje de error, se debe a que existe alguna falla en la ventana de VBA, presioná Atl+F11 luego en Depuración >>>> Compilar, si hay algo lo mostrará, si aún así no es posible crear la mde entonces es posible que en el código existan procedimientos sin origen, es decir si creaste un combo con el asistente y luego borraste ese combo en el formulario el código se ha quedado 'huérfano' en la ventana VBA, ya que no se borra al eliminar el combo. Una buena opción, aunque lenta, es crear una base nueva en blanco e ir importando los objetos de a uno e
Ir creando la mde, en el momento que no deje crear la mde sabrás cuál es el objeto que requiere revisión.
Bueno, como ya te dije, el MDE protege el código y los elementos (Formularios, Informes, Macros y Módulos), pero no así las tablas ni las consultas. Por consiguiente, antes de crear el mde, lo que yo hago es crear un formulario de inicio que se maximice al abrir (DoCmd. Maximize), cosa que ocupe toda la pantalla, sin botones de maximizar, minimizar ni cerrar, con la propiedad Emergente activada (Sí), Bordes "Diálogo" o "Ninguno", Movible (No), etc. También si querés podes dejar el botón de Cerrar y poner en el evento Al cerrar del formulario (DoCmd. Quit), para que se cierre la aplicación al cerrar ese formulario.
Una vez creado el formulario principal lo ponés como formulario de inicio:
Herramientas >>>> Inicio. >>>> Mostrar Formulario/Página >>>> Seleccionás tu formulario principal. En esta misma ventana desactivás todas las casillas de verificación.
Ahora tu ventana de base de datos ya no será visible, a menos que inicies la aplicación con la tecla "Shift" presionada. Así que desactivamos la propiedad "AllowByPassKey" que hace que se pueda saltar el inicio e ir directo a la ventana de base de datos con la tecla "Shift". Esta propiedad, para poder usarla primero tendrás que crearla. Con el siguiente código creamos la propiedad y la desactivamos.
Esto lo pegás suelto en el código del formulario o en un módulo:
-----------------------------------------------------
Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
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
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
------------------------------------------------------------
Creás un botón y en el evento Al hacer Clic ponés:
--------------------------------------------
SetBypassProperty
MsgBox "Tecla Shift desactivada", vbInformation, "Tecla Shift"
--------------------------------------------
Abrís el formulario y le das clic al botón, así quedará desactivada la propiedad. Volvés a la vista de diseño y borrás el botón. Cerrás la aplicación y la próxima vez que vayas a abrirla ya no te podrás saltar el inicio.
Ahora sí creás el MDE y listo!
Eso es todo. Tratá de manejar esta información con cuidado, guardate siempre una copia de seguridad antes de crear un MDE o trabaja con la propiedad AllowByPassKey.
Bueno.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas