Consulta sobre Access URGENTE
He leído tus respuestas y están muy bien, disculpa la molestia. Haber si me puedes ayudar con respecto a mi problema es que he terminado mi programa, pero no se como hacer que varias personas lo usen (solamente un sistema puede estarse acualizando), escondiendo la BD para que no puedan ver las tablas, existe algún programa o como se le hace para que mi programa funcione en red. Y así solamente la pantalla de menu y la de access se vean sin que se vea las tablas, consultas, macros, etc... Estoy trabajando en Office XP.
1 respuesta
Respuesta de jurrutia
1
1
jurrutia, Licenciado en informática
Aúpa,
Contestar a tus dudas no es ninguna molestia, para eso estamos; y quien sabe si algún día, pudieras resolverme tú algún problema a mí.
Bien, vamos con tu pregunta:
Para que tu aplicación funcione en red, es decir, para que varios usuarios puedan acceder a ella simultáneamente, te propongo lo siguiente:
1. Crea dos bases de datos: una con todas las tablas y consultas de tu aplicación, y otra con todo lo demás (formularios, informes, macros y módulos).
2. El fichero con sólo tablas y consultas, deberás copiarlo en un servidor, o en un ordenador de la red al que tengan acceso los usuarios. Este fichero lo copias en una carpeta compartida (te recomiendo que esté oculta para los usuarios)
3. Después en el fichero con los formularios, deberás vincular todas las tablas y consultas del primer fichero.
4. Copia el fichero con los formularios y tablas vinculadas en el ordenador de cada uno de los usuarios. Los usuarios accederán desde el fichero de su ordenador, y esto, incluso te permite crear formularios e informes diferentes para distintos usuarios si fuera el caso.
De este modo, los datos estarán centralizados en un único sitio, y todos los usuario accederán al mismo origen de datos con cierta rapidez.
* Problemas de actualización.
Con este sistema, puede que varios usuarios estén accediendo a un mismo dato simultáneamente. Cuando actualicen los datos, Access le informará al último de que otro usuario ha modificado los datos antes que él, y da opción de cancelar sus modificaciones, o de "machacar" las del primer usuario.
Si no quieres que ocurran este tipo de conflictos, deberás utilizar un acceso a los datos de tipo exclusivo o restringido en las versiones de usuario.
Puedes aplicar estas condiciones de exclusividad de dos maneras:
A. Acceso Exclusivo a toda la Base de Datos
Esta opción permitirá que sólo un usuario esté utilizando las tablas a la vez.
Para activar esta opción, selecciona "opciones" en el menú Herramientas, después activa la pestaña "Avanzadas"
- Modo Predeterminado de Apertura: Si en esta opción marcas "Exclusivo", el primer usuario que abra la base de datos bloqueará las tablas para él, y el resto de usuarios no podrá acceder a ellas.
-Bloqueo Predeterminado de registros: Esta opción es independiente de la anterior; permite que el usuario que accede a una tabla o registro la bloquee para que ningún otro usuario pueda modificar los datos mientras él está trabajando sobre ella.
B. Acceso Exclusivo a datos de un Formulario.
El bloqueo de registro se puede referirse sólo a los datos que maneja un formulario.
Utiliza la propiedad del formulario "BloqueosDelRegistro (RecordLocks)" para establecer bloqueos sobre todo el conjunto de datos que utiliza el formulario, o sólo sobre el registro activo en cada momento.
Es interesante que utilices esta opción en los formularios donde se introducen y modifican datos, pero no es necesario para aquellos que únicamente son de consulta o impresión.
(( Combina estas opciones para lograr exactamente lo que quieres))
<< Tienes más información sobre todas estas opciones en la ayuda del Access. Te recomiendo que le eches un vistazo, es bastante completa>>
(Ten en cuenta que si modificas algo en el diseño de las tablas, deberás actualizar las versiones de usuario (opción Herramientas/Complementos/Administrador de tablas vinculadas))
--------------------------------------------------------------------------------------------------------------------------------------------------
Vamos ahora con la segunda parte de tu pregunta, la de cómo ocultar las tablas y dejar que el usuario sólo pueda ver los formularios e informes.
Lo normal suele ser trabajar con dos versiones de la aplicación (en este caso, de la versión de usuario, el fichero que tenía todos los formularios e informes):
* Versión de Desarrollo: Esta versión es sobre la que trabaja el desarrollador o programador. En esta versión se tiene acceso a todos los objetos de la Base de Datos y sus correspondientes diseños. Esta será la versión sobre la que tú trabajarás normalmente y sobre la que irás realizando modificaciones y mejoras.
* Versión de Usuario: Esta es la versión que se entrega al usuario para que trabaje. Esta versión sólo tendrá habilitado el acceso a aquellos objetos de la Base de Datos estrictamente necesarios, y desde luego, en ningún caso al diseño de los mismos. Puede que existan varias versiones simultaneas de una misma aplicación para diferentes usuarios (diferentes ficheros de usuario).
Bueno, vamos a ver cómo preparamos entonces una versión para usuario.
En la versión de Desarrollo:
0. Asegúrate de que el usuario tiene acceso a todos los datos que necesita (tablas y consultas) a través de formularios e informes que hayas creado tú.
1. Crea tus propias Barras de Menús.
Para evitar que el usuario pueda enredar entre las opciones de los Menús y descubrir el pastel, crea tus propia barra de menús con sólo las opciones imprescindibles que vaya a necesitar el usuario (Imprimir, Salir, Copiar, Pegar...). A veces puede resultar útil crear una barra en blanco sin ninguna opción.
Asegúrate de que todos los formularios de tu aplicación llaman a una barra de Menús o Herramientas creada y controlada por ti (opción BarraDeMenús (MenuBar) de las propiedades del Formulario)
Una vez creadas estas barras, protégelas para que el usuario no pueda modificarlas o quitarlas: Deshabilita las opciones: Permitir Mover, Permitir Personalizar, Permitir Mostrar y ocultar, Permitir Cambiar tamaño.
2. Quita los menús contextuales
Quita los menús contextuales de aquellos formularios donde no sean necesarios: (opción Menú Contextual (MenúDeMétodoAbreviado (ShortcutMenu))= No) en las propiedades del Formulario
3. Crea una pantalla de inicio.
Crea un formulario de inicio para tu aplicación desde el que el usuario tenga acceso a las opciones principales de tu aplicación (incluye alguna Barra de Menú si es necesario)
Este formulario deberá ser lo primero que se cargue al abrir la Base de Datos. Para ello, vete a Herramientas/Inicio, y en la opción Mostrar el Formulario selecciona el nombre del formulario que deseas mostrar como pantalla de inicio.
Ahora, copia la base de datos para crear una versión de usuario. Sobre esta versión realizaremos las siguientes modificaciones:
4. Modificar las Opciones de inicio
En el cuadro de diálogo de la opción Herramientas/Inicio, hay que desmarcar las siguientes opciones:
* Presentar la ventana Base de Datos: Esta opción oculta la ventana donde aparecen todos los objetos de la Base de datos (tablas, consultas, formularios e informes)
* Permitir el uso de las barras de herramientas incorporadas: Quita esta opción para que el usuario no pueda ver más barras de herramientas que las que tú has creado.
* Permitir cambios en barras de herramientas y menús: Quita esta opción para que el usuario no tenga posibilidad de crear una barra de menús que nos desbarate el invento.
En opciones Avanzadas>>
* Usar las teclas especiales de Access: Si no quitas estas opción, un usuario avispado puede acceder a al ventana de Base de datos pulsando F11, u otro usuario más avispado aun, puede entrar al diseño de nuestra Base de datos si pulsa la tecla Shift (mayúsculas) mientras abre el fichero. Para impedir que el usuario pueda hacernos alguna de estas trastadas, desmarca esta opción.
5. Por último, crea un archivo MDE
Para optimizar tu aplicación, guarda la versión de Usuario como archivo MDE.
Esto compila todos los módulos de Visual Basic, lo cual favorece que se ejecuten más rápidamente, y además impide que se pueda modificar el diseño de ningún formulario o informe.
Con esto, tu aplicación habrá quedado blindada; y además tendrá un aspecto más profesional (una vez activados estos cambios ya no podrás modificar la versión de usuario, deberás recurrir a la copia que has hecho previamente)
Espero que esto te sirva. Cualquier duda o pega que tengas con la solución que te propongo, no dudes en comentármenla.
Un abrazo,
Javi
Contestar a tus dudas no es ninguna molestia, para eso estamos; y quien sabe si algún día, pudieras resolverme tú algún problema a mí.
Bien, vamos con tu pregunta:
Para que tu aplicación funcione en red, es decir, para que varios usuarios puedan acceder a ella simultáneamente, te propongo lo siguiente:
1. Crea dos bases de datos: una con todas las tablas y consultas de tu aplicación, y otra con todo lo demás (formularios, informes, macros y módulos).
2. El fichero con sólo tablas y consultas, deberás copiarlo en un servidor, o en un ordenador de la red al que tengan acceso los usuarios. Este fichero lo copias en una carpeta compartida (te recomiendo que esté oculta para los usuarios)
3. Después en el fichero con los formularios, deberás vincular todas las tablas y consultas del primer fichero.
4. Copia el fichero con los formularios y tablas vinculadas en el ordenador de cada uno de los usuarios. Los usuarios accederán desde el fichero de su ordenador, y esto, incluso te permite crear formularios e informes diferentes para distintos usuarios si fuera el caso.
De este modo, los datos estarán centralizados en un único sitio, y todos los usuario accederán al mismo origen de datos con cierta rapidez.
* Problemas de actualización.
Con este sistema, puede que varios usuarios estén accediendo a un mismo dato simultáneamente. Cuando actualicen los datos, Access le informará al último de que otro usuario ha modificado los datos antes que él, y da opción de cancelar sus modificaciones, o de "machacar" las del primer usuario.
Si no quieres que ocurran este tipo de conflictos, deberás utilizar un acceso a los datos de tipo exclusivo o restringido en las versiones de usuario.
Puedes aplicar estas condiciones de exclusividad de dos maneras:
A. Acceso Exclusivo a toda la Base de Datos
Esta opción permitirá que sólo un usuario esté utilizando las tablas a la vez.
Para activar esta opción, selecciona "opciones" en el menú Herramientas, después activa la pestaña "Avanzadas"
- Modo Predeterminado de Apertura: Si en esta opción marcas "Exclusivo", el primer usuario que abra la base de datos bloqueará las tablas para él, y el resto de usuarios no podrá acceder a ellas.
-Bloqueo Predeterminado de registros: Esta opción es independiente de la anterior; permite que el usuario que accede a una tabla o registro la bloquee para que ningún otro usuario pueda modificar los datos mientras él está trabajando sobre ella.
B. Acceso Exclusivo a datos de un Formulario.
El bloqueo de registro se puede referirse sólo a los datos que maneja un formulario.
Utiliza la propiedad del formulario "BloqueosDelRegistro (RecordLocks)" para establecer bloqueos sobre todo el conjunto de datos que utiliza el formulario, o sólo sobre el registro activo en cada momento.
Es interesante que utilices esta opción en los formularios donde se introducen y modifican datos, pero no es necesario para aquellos que únicamente son de consulta o impresión.
(( Combina estas opciones para lograr exactamente lo que quieres))
<< Tienes más información sobre todas estas opciones en la ayuda del Access. Te recomiendo que le eches un vistazo, es bastante completa>>
(Ten en cuenta que si modificas algo en el diseño de las tablas, deberás actualizar las versiones de usuario (opción Herramientas/Complementos/Administrador de tablas vinculadas))
--------------------------------------------------------------------------------------------------------------------------------------------------
Vamos ahora con la segunda parte de tu pregunta, la de cómo ocultar las tablas y dejar que el usuario sólo pueda ver los formularios e informes.
Lo normal suele ser trabajar con dos versiones de la aplicación (en este caso, de la versión de usuario, el fichero que tenía todos los formularios e informes):
* Versión de Desarrollo: Esta versión es sobre la que trabaja el desarrollador o programador. En esta versión se tiene acceso a todos los objetos de la Base de Datos y sus correspondientes diseños. Esta será la versión sobre la que tú trabajarás normalmente y sobre la que irás realizando modificaciones y mejoras.
* Versión de Usuario: Esta es la versión que se entrega al usuario para que trabaje. Esta versión sólo tendrá habilitado el acceso a aquellos objetos de la Base de Datos estrictamente necesarios, y desde luego, en ningún caso al diseño de los mismos. Puede que existan varias versiones simultaneas de una misma aplicación para diferentes usuarios (diferentes ficheros de usuario).
Bueno, vamos a ver cómo preparamos entonces una versión para usuario.
En la versión de Desarrollo:
0. Asegúrate de que el usuario tiene acceso a todos los datos que necesita (tablas y consultas) a través de formularios e informes que hayas creado tú.
1. Crea tus propias Barras de Menús.
Para evitar que el usuario pueda enredar entre las opciones de los Menús y descubrir el pastel, crea tus propia barra de menús con sólo las opciones imprescindibles que vaya a necesitar el usuario (Imprimir, Salir, Copiar, Pegar...). A veces puede resultar útil crear una barra en blanco sin ninguna opción.
Asegúrate de que todos los formularios de tu aplicación llaman a una barra de Menús o Herramientas creada y controlada por ti (opción BarraDeMenús (MenuBar) de las propiedades del Formulario)
Una vez creadas estas barras, protégelas para que el usuario no pueda modificarlas o quitarlas: Deshabilita las opciones: Permitir Mover, Permitir Personalizar, Permitir Mostrar y ocultar, Permitir Cambiar tamaño.
2. Quita los menús contextuales
Quita los menús contextuales de aquellos formularios donde no sean necesarios: (opción Menú Contextual (MenúDeMétodoAbreviado (ShortcutMenu))= No) en las propiedades del Formulario
3. Crea una pantalla de inicio.
Crea un formulario de inicio para tu aplicación desde el que el usuario tenga acceso a las opciones principales de tu aplicación (incluye alguna Barra de Menú si es necesario)
Este formulario deberá ser lo primero que se cargue al abrir la Base de Datos. Para ello, vete a Herramientas/Inicio, y en la opción Mostrar el Formulario selecciona el nombre del formulario que deseas mostrar como pantalla de inicio.
Ahora, copia la base de datos para crear una versión de usuario. Sobre esta versión realizaremos las siguientes modificaciones:
4. Modificar las Opciones de inicio
En el cuadro de diálogo de la opción Herramientas/Inicio, hay que desmarcar las siguientes opciones:
* Presentar la ventana Base de Datos: Esta opción oculta la ventana donde aparecen todos los objetos de la Base de datos (tablas, consultas, formularios e informes)
* Permitir el uso de las barras de herramientas incorporadas: Quita esta opción para que el usuario no pueda ver más barras de herramientas que las que tú has creado.
* Permitir cambios en barras de herramientas y menús: Quita esta opción para que el usuario no tenga posibilidad de crear una barra de menús que nos desbarate el invento.
En opciones Avanzadas>>
* Usar las teclas especiales de Access: Si no quitas estas opción, un usuario avispado puede acceder a al ventana de Base de datos pulsando F11, u otro usuario más avispado aun, puede entrar al diseño de nuestra Base de datos si pulsa la tecla Shift (mayúsculas) mientras abre el fichero. Para impedir que el usuario pueda hacernos alguna de estas trastadas, desmarca esta opción.
5. Por último, crea un archivo MDE
Para optimizar tu aplicación, guarda la versión de Usuario como archivo MDE.
Esto compila todos los módulos de Visual Basic, lo cual favorece que se ejecuten más rápidamente, y además impide que se pueda modificar el diseño de ningún formulario o informe.
Con esto, tu aplicación habrá quedado blindada; y además tendrá un aspecto más profesional (una vez activados estos cambios ya no podrás modificar la versión de usuario, deberás recurrir a la copia que has hecho previamente)
Espero que esto te sirva. Cualquier duda o pega que tengas con la solución que te propongo, no dudes en comentármenla.
Un abrazo,
Javi
- Compartir respuesta
- Anónimo
ahora mismo