2010-11-12 9 views
10

Me han puesto a cargo más de 50 bases de datos de acceso (.mdb y .accdb de varias versiones) distribuidas en una intranet, y necesito agregar algunas funciones de VBA (el exactamente el mismo código) para casi todos ellos. Espero que se pueda lograr creando una referencia desde cada base de datos a un módulo de VBA centralizado, ya que realmente me gustaría la posibilidad de realizar cambios en el futuro que se repliquen automáticamente en cada base de datos. También sería una ventaja si cualquier referencia adicional en la base de datos central se pudiera mantener intacta, así no tendría que gestionarla individualmente también.Uso de un módulo de VBA centralizado en múltiples bases de datos de Access

Soy bastante nuevo en la programación de VBA (aunque he sido un adicto a PHP durante años), y he estado teniendo dificultades para encontrar las palabras adecuadas para buscar este tema en particular. Creo (por lo que he leído hasta ahora) que podría necesitar Visual Studio para compilar un archivo DLL para hacer referencia, pero me gustaría mantener todo simple y contenido dentro de Access si es posible, especialmente porque no tenemos un VS licencia.

Gracias, cualquier puntero sería muy apreciado!

Respuesta

12

No se preocupe, es bastante simple.

  1. Haga su base de datos "helper". Pon algunos procedimientos allí.
  2. En sus bases de datos 'cliente', abra el Editor de VBA
  3. Vaya a Herramientas-> Referencias. Busque y seleccione su base de datos de ayuda.
  4. ¡Listo! Ahora puede usar todas las funciones en su base de datos de ayuda en las bases de datos de sus clientes.

Así que ... no archivos .dll de los que preocuparse. No se necesita Visual Studio.

+0

¡Gracias, parece que podría funcionar perfectamente! Simple de hecho. – spudsy

+0

Parece una gran idea, pero puede llegar a ser una molestia. – Fionnuala

+0

Estaba a punto de preguntar qué tipo de molestia, pero luego noté el seguimiento de Tony. Aprecio la advertencia Remou :) – spudsy

7

El término de búsqueda es complementos. (Ahh, veo que Google ha mejorado la experiencia de búsqueda con palabras con hyphnes incrustados desde la última vez que lo intenté). El enfoque mencionado por PowerUser funcionará, pero hay una serie de problemas.

  • Usted tendrá que distrubte el complemento junto con su FE a los ordenadores de los usuarios.

  • Un MDE/ACCDE no puede hacer referencia a un MDB/ACCDB. Pero si cambia el complemento MDE/ACCDE, debe redistribuir bien el FE MDE/ACCDE como . Aunque no haya realizado ningún cambio en los parámetros o nombres de subrutinas/funciones.

  • Mientras se está depurando el código en el complemento o la negociación con un mensaje de error VBA se abrirá el complemento VBA editor de código. NO haga los cambios allí. Se perderán tan pronto como cierre la ventana del código de complemento.

Ver mi Add-in Tips, Hints and Gotchas página para más detalles.

+0

Sí. Gotcha # 3 es un _real_ em, fastidio :) – Fionnuala

+0

Gracias por la información Tony, muy bueno saber! – spudsy

5

También podría dar un paso más. Escribí un artículo sobre esto para vb123.com:

Using Database Library Files in your Access Application

Puede usar formularios, informes, consultas, módulos, clases ... más o menos todo excepto subformularios. Y todo en un simple archivo mdb o accdb antiguo (o mde, para el caso).

+0

¡Gran artículo, gracias por el recurso agregado! – spudsy

+0

Buen artículo. (Ahhh, ahora veo por qué no pude publicar mi comentario ayer. Era demasiado corto. Grrrr) –

Cuestiones relacionadas