Pregunta

Actualmente estoy en un equipo de 4-persona encargada del desarrollo y mantenimiento de una aplicación de MS Access legado.

La aplicación es bastante grande, con cientos de formularios, informes, consultas y tablas.

En la actualidad tenemos la parte delantera dividida en cerca de 7 componentes MDE, cada uno de los cuales es esencialmente una aplicación en su propio derecho, unidas por una interfaz común, que consiste simplemente en una interfaz gráfica de usuario del menú.

Utilizamos tablas vinculadas para conectar este extremo delantero a un extremo posterior de MS Access, utilizando OpenDatabase (C: \ Access.mdb) llama en el propio código. Esta aplicación ha estado alrededor por un tiempo, y por lo tanto utiliza DAO para conectarse a una base de acceso 97.

Esto significa que cada usuario de la aplicación tiene su propia copia local de la base de datos para hacer cambios. Tenemos un ambiente cuidadosamente cambio controlado, que garantiza que sólo una persona puede estar trabajando en los datos a la vez, tienen que validar todos sus cambios antes de pasar la base de datos maestra a la siguiente persona.

Este entorno de control de cambios es sofocante por decirlo suavemente, y pronto tendrá una necesidad de más cambios de datos a realizar en un plazo de tiempo que hace que el acceso de usuario único inviable.

Por lo tanto, tenemos que avanzar con el acceso multi-usuario, sino por varios usuarios me refiero sólo unos 4 personas. Este pueblo probablemente no se encuentran físicamente en el mismo cargo, por lo que es necesaria alguna forma de conexión DB alejado.

Es probable que ser re-trabajado en un año o dos de tiempo, se mueve tanto la parte delantera y trasera en dirección opuesta a la EM acceder a toda la aplicación. Sin embargo, necesitamos el acceso multi-usuario lo antes posible.

Así que, ¿cuál es el camino más rápido a la dicha multiusuario?

Las sugerencias que estamos considerando son:

  • Configuración de una VPN para que MS Access cree que está accediendo a una unidad de red regular. Esto parece que va a ser lento y estoy seguro de que un VPN es lo suficientemente fiable, pero es sólo una solución temporal que buscamos todos modos.
  • Convertir el backend mdb en algo destinado para el uso remoto multiusuario, como SQL Server. Simplemente no sabemos cómo hacer esto de manera rápida y fácil (nos basamos en las reglas de validación de campos, por ejemplo) También nos presumiblemente tiene que convertir de nuevo a formato MS Access como otras aplicaciones aceptan los mismos archivos .mdb como entrada de datos.
  • Casi cualquier cosa que se puede llevar a cabo por 1 o 2 personas en un par de meses.

EDIT:. Respondiendo a los siguientes comentarios

Los datos que se procesa por la aplicación es altamente datos críticos de seguridad. Cambia raramente, y debe ser validado para mostrar que no hay errores lógicos antes de ser exportado. En realidad, los datos están bajo restricciones más pesadas que la propia aplicación!

Los datos se interrelacionan de manera no trivial. Como tal, un cambio en un registro de una tabla puede invalidar un registro de otra tabla debido a la lógica de negocio complicado. Por lo tanto, en este momento, una copia del archivo de datos MDB se designa la base de datos maestra. Sólo una persona tiene el maestro en un momento dado. Si desea realizar cambios en él, usted tiene que obtener esa base de datos de la persona que actualmente tiene. Esto no suele ser un problema ya que rara vez cambian los datos suficientes que hay tiempo suficiente para que esto ocurra.

Sin embargo, un cambio grande está subiendo, que no se nos ha dado el tiempo suficiente para trabajar de esta manera. Tenemos que tener varias personas que trabajan en los datos a la vez. Ahora estoy consciente de que puede compartir el archivo MDB en una unidad de red y tener varias personas en el mismo trabajo de oficina en ese archivo con poco o ningún riesgo, pero necesitamos personas de diferentes empresas para trabajar en los datos al mismo tiempo . como yo lo entiendo, la creación de una VPN para compartir los datos a través es un mal plan.

Creo que tenemos que cambiar el backend lejos de MS Access y pasar a algo como servidor SQL. Pero lo fácil que es para convertir un esquema de esta manera? ¿Cómo son las reglas de validación de tabla de MS Access representados en SQL Server?

¿Fue útil?

Solución

Como regla acccess derecho general del área que se accede a múltiples usuarios como un recurso compartido de archivos. Lo que esto significa es que usted podría tomar la base de datos back-end (mdb) y ponerlo en una carpeta compartida en el servidor. Esto permitiría a algunas personas en su oficina para ejecutar la aplicación al mismo tiempo. Sin embargo, eso significa que estamos hablando de una oficina típica de LAN. Cuando se empieza a hablar acerca de las conexiones remotas y VPN y redes de área amplia (WAN), y luego usando el acceso como un recurso compartido de archivos no es estable.

Así que si esto es sólo tres o cuatro personas en un entorno de red de oficina normal, a continuación, dependiendo de la aplicación, es muy probable que sólo tiene que poner el back-end en una carpeta compartida en el servidor y seguir teniendo todos los extremos delanteros desplegados en cada equipo, y que están vinculados a ese archivo una base de datos back-end (MDB) en la carpeta compartida. MS Access bastante funciona bien de esta manera.

Sin embargo, para hablar de algún tipo de VPN o WAN, a continuación, una posible solución es mover el archivo MDB extremo posterior con el servidor SQL, y seguir utilizando todos los formularios, informes, etc. de su aplicación actual (La mayor parte de su aplicación se ejecutará como antes cuando se hace esto).

Otra muy buena tecnología para tener en cuenta es cliente ligero, o los llamados servicios de terminal. servicios de terminal sólo una edición de lujo de un sistema de escritorio remoto. TS permite a las personas de más ancho de banda, incluso bastante limitado a ejecutar y utilizar la aplicación desde ubicaciones remotas.

Sin embargo, si usted está hablando de tres a cuatro usuarios en una oficina típica de LAN, que es muy posible que su aplicación se ejecutará con muy pocas modificaciones como es, y sólo tiene que mover el archivo de base de datos back-end a una carpeta compartida en un servidor algun lado. No puedo subrayar sin embargo que esto sólo funciona si todas las personas que están en la misma LAN pequeña oficina, y no algún tipo de conexión remota o una WAN / VPN. Así, en el caso de la WAN / VPN, utilice los servicios de terminal, o estudiar la posibilidad de mover el back-end para el servidor SQL, y seguir utilizando termina la parte delantera de aplicaciones como es.


editar - más información: Ok, así que con más información aquí podemos avanzar. Como se ha mencionado, MS-Access es multiusuario sacarlo de la caja. Se necesitan personas de diferentes lugares para trabajar en estos datos. Por lo tanto, esto significa que su aplicación tiene que ser configurado para la capacidad multi-usuario, independientemente de esta cuestión diferente ubicación. Una vez que tenga la configuración de la aplicación para múltiples usuarios a continuación, hacer frente entonces la cuestión de permitir a la gente a utilizar el software de diferentes lugares.

Esto no es diferente que si tenemos algo para la gestión de la empresa fiesta de Navidad. Si tenemos un diseño tal que después de la fiesta de Navidad borramos todo el archivo para empezar de nuevo para la fiesta de Navidad del próximo año, entonces podemos permitir que TODAVÍA múltiples usos en esta aplicación. Sin embargo, el diseño es tal que no se puede tener múltiples fiestas de Navidad activas al mismo tiempo debido a sus diseños. Así que en este caso no es el hecho de que la aplicación es multi usuario. En este tipo de escenario, uno podría realmente añadir una nueva tabla llamada tabla años fiesta de Navidad. Entonces uno puede relacionarse todas las tablas en la aplicación de esta tabla maestra como un niño tablas. De esa manera usted puede tener múltiples fiestas de Navidad activas al mismo tiempo, para este diseño. Luego, cuando se inicia la aplicación, los usuarios se les solicita con algún tipo de lista para elegir lo que la fiesta de Navidad que desea trabajar.

Así que no hay que confundir los dos anteriores cuestiones separadas. No tiene sentido preguntar cómo los servicios de terminal permite que la aplicación sea multi-usuario, que no hace tal cosa. Lo que hace es TS le permiten tomar una aplicación que ya es multi usuario y permitir que la gente de lugares remotos para utilizar dicha aplicación. Así TS es un sistema que permite a las personas a ejecutar y utilizar la aplicación desde ubicaciones remotas en cualquier lugar en Internet. Sus diseños todavía dictarán si la aplicación que nos permite a más de una fiesta de Navidad para ser activo en tSin embargo, él mismo tiempo.

Así que usted no hace MS acceso multiusuario, acceso multiusuario MS es nada más sacarlo de la caja y que no tiene que hacer nada, excepto adoptar algunas tecnologías que permiten a los usuarios en diferentes ubicaciones utilizan la aplicación. Por lo tanto, esto es lo que hace TS, y también el servidor SQL puede hacer por usted.

Si el diseño sólo permite a un proyecto, entonces podemos permitir que varios usuarios de diferentes lugares en el mundo para utilizar una aplicación, sino que sólo se permita tener un proyecto activo debido a las limitaciones de diseño de la aplicación.

Así que todos los de su mesa de actualización lógica etc puede trabajar como antes. Simplemente hay que preguntar es qué el applicaion ahora permiten que un usuario para salir del applcaion, y otro usuario entra en ella y hacer su trabajo? Pretender que sólo hay un equipo independiente en la oficina. Puede Diffent empleados durign el día sentarse y utilizar que un ordenador y que una aplicación con la que backend para cada uno de sus proyectos separados?

Así se utiliza el servidor SQL o servicios de terminal no hacer su aplicación más (o menos) de múltiples usuarios a continuación, que es ahora. Estas tecnologías sin duda puede aumentar el número de usuarios que pueden utilizar la aplicación al mismo tiempo.

Así MS acceso es multiusuario ahora. Sin embargo servidor SQL lo hace, o TS no es permitir una mayor flexibilidad en términos de cómo los usuarios conectados remotamente a esta aplicación.

Otros consejos

OMI definitivamente se necesita para convertir la base de datos a un servidor multi-usuario, independientemente de qué otras soluciones se tiene en cuenta. Hay un Asistente para convertir que debería resultar útil ( http://support.microsoft.com/kb/237980), es probable que encuentre elementos que permite el acceso y el servidor SQL no, pero en su mayor parte debe ser sin dolor. Puede remitir a las copias locales de acceso para utilizar esta nueva fuente de datos (a través de ODBC, por ejemplo) y creo que todos deben trabajar más o menos de la misma manera. no han hecho esto en años, ni idea de lo que esas reglas de validación de campo (no serían todavía estar en forma?) resultaría en. Puede descargar una copia de prueba del servidor SQL y hacer esto en menos de una hora para conseguir una sensación de la cantidad de esfuerzo que requeriría.

Como siempre usted tiene una excelente respuesta de Albert Kallal.

Si usted quiere considerar para convertir a SQL Server hay una herramienta del grupo de SQL Server. Asistente de migración de SQL Server para Acceso (SSMA de acceso) http://www.microsoft.com/sql/solutions/migration/ acceso / default.mspx que es mejor que el Asistente para convertir acceso.

También vea mis pensamientos al azar en convertir a SQL Server SQL Server desde la página Consejos de Microsoft Access en http: //www.granite.ab.ca/access/sqlserverupsizing.htm

Como se puede ver en los comentarios a su publicación el control de cambio a largo plazo que utiliza su organización es no tradicional y bastante interesante. Aunque puedo ver cómo alguien hace años tratando de encontrar una solución para oficinas remotas de datos cambiantes podrían llegar a esta solución. También puedo ver a través de cómo sería sofocante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top