2009-09-07 29 views
6

Haber creado un par de archivos de biblioteca de mda a los que me refiero desde mi aplicación de acceso principal (es decir, usando Herramientas -> Referencias dentro del IDE).Acceso a VBA - referencias de archivo relativas

¿Hay alguna manera de que estas referencias se puedan hacer relativas en lugar de absolutas. La razón por la que estoy preguntando es para facilitar la configuración en la computadora del usuario si los tres archivos (la aplicación principal y dos archivos mda) pudieran simplemente colocarse en cualquier directorio y trabajar sin tener que cambiar las referencias. .

Gracias

Respuesta

7

¿Por qué no simplemente coloca los tres MDE en la misma carpeta en el sistema de destino? El acceso debería encontrar las referencias MDE muy bien.

¿O está utilizando la lógica del complemento con la tabla USysRegInfo? Realmente no necesita hacer eso con sus propios complementos. Solo con complementos de desarrollador como Find and Replace de Rick Fisher.

Si esto no funciona, indíquenos los mensajes de error o los síntomas.

+0

impresionante. Voy a darle una oportunidad. –

+0

Funciona como un regalo. Gracias. No tenía idea de que trataría de resolver las referencias de esa manera. –

+0

BTW también puede utilizar la herramienta gratuita Auto FE Updater en http://www.autofeupdater.com/ para que la descarga de las nuevas versiones sea relativamente sencilla.También tenga en cuenta que si su FE principal es un MDE y realiza cualquier cambio en los MDE referenciados, también debe hacer un nuevo MDE FE. –

4

para obtener la ruta del archivo de la solicitud de acceso

CurrentProject.Path & "\" 

Entonces sólo tiene que añadir los otros archivos en el mismo directorio y obtener por su nombre. es decir,

Dim filepath As String 
filepath = CurrentProject.Path & "\name_of_file.mda" 
+0

desafortunadamente, entonces mi código no compilaría ... (a menos que me moviera a la vinculación tardía, supongo) –

+0

ah, lo entiendo ahora. Creo que el enlace tardío podría ser el camino a seguir con esto. –

+0

Russ, ¿podría explicar cómo funcionaría el enlace tardío con Access MDBs/MDEs? No estoy consciente de cómo hacer esto. –

0

Puede agregar referencias de VBA a través de VBA.

Dim sFilename As String 
sFilename = CurrentProject.Path & "\" & whatever.mda 

Application.References.AddFromFile sFilename 

Simplemente ponga eso en su AutoExec y esa referencia debería estar disponible para todo. Por supuesto, deberá verificar si la referencia ya existe antes de agregarla; de lo contrario, obtendrá un error. Pero eso es solo cuestión de pasar por Application.References.

+1

Si el póster original está distribuyendo la aplicación como un MDE/ACCDE, esta solución se ganó Funciona ya que no puede actualizar las referencias en un MDE/ACCDE. –

Cuestiones relacionadas