Abrir formulario Access 2010 solo lectura

Estoy realizando una base de datos en Access con la extensión .accdb y filtro de usuarios. He creado un botón en la pantalla de Inicio para que después de verificar el usuario me abra el formulario en solo lectura con el siguiente código.

DoCmd. OpenForm "Siniestros Informes Busqueda",,,, acFormReadOnly

A parte de esto también necesito bloquear que no puedan entrar en el modo diseño para que no puedan cambiar nada. ¿Cómo puedo hacer esto?

1 Respuesta

Respuesta
1

Lo más sencillo y práctico es convertir el archivo accdb en accde, es decir, en un archivo ejecutable en el que no están permitidas las vistas de diseño de los objetos ya existentes y por tanto los cambios en ellos. Tu continuas el desarrollo con el accdb y cada vez que quieras actualizar el archivo en uso por parte del resto de usuarios simplemente lo vuelves a crear y sobrescribes su archivo (obviamente tienes que tener separados datos de aplicación).

En 2010 puedes encontrar la manera de hacerlo en menú Archivo >>> Guardar & Publicar >>> Crear ACCDE y presionar el botón Guardar como.

Puedes seguir definiendo el acceso a datos (solo lectura...) tal y como haces, ya que ambas cosas son independientes. El cambio a accde afecta a todo el archivo y el acceso a datos lo defines en cada uno de los formularios que uses.

Cordiales saludos.

Lo primero darte las gracias por tu rápida respuesta, pero al intentar lo que me dices, me da un error y dice que no pudo crear el archivo. Cuando despliego la ayuda me dice lo siguiente:

"Este error ocurre generalmente al compilar una base de datos de gran tamaño en un archivo MDE. Debido al método utilizado para compilar la base de datos, se crea un número considerable de referencias de Id. de tabla para cada tabla. El motor de base de datos de Microsoft Access sólo puede generar un máximo de 2048 Id. de tabla abiertos a la vez. Al exportar una base de datos como archivo MDE, es fácil que se exceda este límite si la base de datos contiene un gran número de objetos (tablas, macros, formularios, informes, etc.).

No hay ningún método preciso para averiguar los números de Id. de tabla que utiliza el motor de base de datos de Access durante el proceso de compilación de bases de datos como archivos MDE. Sin embargo, cada módulo VBA y cada formulario utiliza un Id. de tabla y, por consiguiente, si la base de datos tiene 500 formularios y la propiedad HasModule de cada formulario está establecida en , se utilizan 1.000 Id. de tabla."

Aunque esa información que facilita Microsoft no dudo que sea una posibilidad, me extraña que esa sea la causa real. ¿De verdad tienes una aplicación con un número tan desmesurado de objetos? De ser así suele indicar un mal diseño. Hay veces que en lugar de reutilizar un objeto se crean muchas copias del mismo (dividir datos en tablas para guardarlos por año, tener varios informes iguales para poner un logo personalizado en lugar de usar uno y controlar el logo a mostrar...) lo que hace que puedan existir muchos objetos, pero tener más de 2048 aunque se cuenten también los módulos de formularios o informes me parece excesivo.

Suponiendo que no sea el caso te aconsejo que mires el siguiente vínculo.

http://support.microsoft.com/kb/814858/es 

En el se indica que normalmente el error está en que el código de la aplicación no está compilado y se produce un error al intentar compilarse para crear el accde.

Sigue las instrucciones que indican y tras compilar el código vuelve a intentarlo.

Cordiales saludos.

Tu ayuda me ha servido mucho, tras mucho investigar en el enlace de Microsoft, he entrado en el editor de Visual Basic, y había una instrucción errónea, por eso no me dejaba compilarla.

Ahora ya la tengo compilada en ACCDE, si ahora la comparto, para que lo usuarios rellenen registros, y dentro de un mes quiero volver a entrar en modo diseño sin perder esos datos introducidos, ¿Cómo puedo hacerlo? ¿Cómo se puede entrar a la vista diseño de una ACCDE?

No se puede volver a generar un accdb a partir de un accde. Piensa que en ese caso cualquiera podría generarlo, hacer cambios...

Tienes que mantener el accdb original para poder volver a generar el accde. Para ello lo más importante es tener separadas todas las tablas en un archivo y el resto de la aplicación en otro. Este archivo de aplicación lo conviertes a accde. Cuando necesites hacer cambios los haces en tu archivo original y vuelves a generar el nuevo accde. Como los datos están en otro archivo no se verán afectados. SI mantienes los datos y la aplicación en el mismo archivo te tocaría importar todos los datos al nuevo accde antes de sobreescribir el que están usando los usuarios.

Hay un asistentes en Access para separar la aplicación en datos y resto de objetos, aunque se puede hacer de forma manual sin problemas en unos minutos.

Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas