2011-06-06 17 views
5

Tengo una aplicación de acceso frontal 2007 que habla con el servidor MySql.Cómo actualizar automáticamente la aplicación MS-Access 2007

Quiero tener una función donde la aplicación en la computadora del usuario pueda detectar que hay una nueva versión en la red (lo cual no es difícil) y descargar la última versión a la unidad local y ejecutarla.

¿Alguien tiene conocimiento o experiencia de cómo se puede hacer esto?

Gracias

Respuesta

5

¿De verdad necesita para averiguar si hay una versión más reciente?

Tenemos una configuración similar también, y solo copiamos el frontend y todos los archivos relacionados cada vez que alguien inicia la aplicación.

Nuestros usuarios no inician el acceso o la interfaz. De que comiencen a un archivo por lotes que se ve algo como esto:

@echo off 
xcopy x:\soft\frontend.mde c:\app\ /Y 
c:\app\frontend.mde 

Cuando comenzamos a escribir nuestra aplicación, pensamos en la actualización automática, así y decidió que sólo copiar todo cada vez es suficiente.

Tenemos suficiente ancho de banda, por lo que la copia no crea ningún problema de rendimiento (con aproximadamente 200 usuarios).

Además, me facilita algunas cosas como desarrollador cuando puedo estar seguro de que cada vez que se inicia la aplicación, la interfaz se sobrescribe de todos modos.
No tengo que preocuparme por la autocompactación de la interfaz cuando está cerrada (y los usuarios que se quejan de que cerrar la aplicación lleva demasiado tiempo ...), y no tengo que lidiar con interfaces corruptas después de bloqueos.


@Lumis - concerniente al icono personalizado:
Ok, tal vez debería haber hecho esto más claro. Solo hay un archivo por lotes, y está en la misma carpeta de red que el frontend.
Los usuarios solo tienen enlaces en sus escritorios que apuntan al mismo archivo por lotes en la carpeta de red.
Esto significa que:

  1. futuros cambios en el archivo por lotes son fáciles, porque es sólo un único archivo en un lugar central
  2. que podemos cambiar el icono, porque lo que el usuario ve es un enlace normal de Windows

(Por cierto, nos hizo no cambiar el icono.Nuestra aplicación es solo para uso interno, y estoy trabajando en una empresa de fabricación, lo que significa que casi todos los usuarios son absolutamente no técnicos y no les importa el ícono, siempre y cuando sea igual en todas las máquinas. y saben cómo se ven para que puedan encontrarlo rápidamente en su escritorio ...)

+0

Esta solución funciona, pero no puedo asignar un icono personalizado a un archivo de proceso por lotes, lo cual es importante para una apariencia más amigable y profesional. Estoy de acuerdo en que cuando el usuario inicia la base de datos una vez al día, no hay demasiado tráfico de datos. – Lumis

+3

¿Por qué había considerado la autocompactación (compacta al cerrar) la FE en primer lugar? Si su aplicación usa tablas locales para datos temporales o datos específicos del usuario, colóquelos en una base de datos local separada y vincule a esas tablas desde el FE. Parece altamente inusual que tenga otras razones para compactar un MDE FE. En cualquier caso, evite el autocompacto. – HansUp

+0

@HansUp: Sí, solo por las tablas locales. Buen punto, nunca pensamos poner tablas temporales en una base de datos local separada. –

2

, Tony Toews tiene uno: Access Auto FE Updater

Parece ser libre, pero no estoy 100% seguro.

+1

Sí, es gratis y bastante bueno, rodé el mío que usa la misma idea antes de encontrar uno –

+0

No estoy seguro de cómo funciona esto, tengo que enviar correos electrónicos a los usuarios cada vez que tengo una actualización o simplemente lo hacen haga clic en el mismo enlace en su escritorio, inicialmente generado por esta utilidad? – Lumis

+0

Gratis como en b ** r - no. Es nag-ware después de 15 días. – BIBD

0

La opción de Lumis es sólida, sin embargo, si desea verificar la versión y copiar la base de datos cuando se trata de una nueva versión, tener un campo 'Versión' en una tabla de fondo y una 'Versión' constante en un módulo de front-end. Mantenga estos en sincronía con cada nueva versión de producción. Compare la versión de la tabla con la versión del módulo cuando se abra la forma principal de la base de datos de la interfaz.

Si no concuerdan, haga que la base de datos se cierre, pero haga que la base de datos llame a un archivo por lotes como el último bit de código que se ejecutará cuando se cierre. La base de datos debe terminar de cerrarse antes de que el archivo por lotes comience su proceso de copia. Si es necesario, coloque un retraso menor en el código del archivo por lotes solo para asegurarse de que no haya problemas de bloqueo de archivos.

Cuestiones relacionadas