2009-09-07 7 views
6

In sono stati creati un paio di file di libreria mda cui faccio quindi riferimento dalla mia applicazione di accesso principale (ovvero utilizzando Strumenti -> Riferimenti dall'interno dell'IDE).Accesso VBA - Riferimenti file relativi

Esiste un modo per rendere questi riferimenti più relativi che assoluti. Il motivo per cui lo chiedo è che renderebbe facile l'installazione sul computer dell'utente se tutti e tre i file (applicazione principale e due file mda) potrebbero semplicemente essere collocati in qualsiasi directory e funzionare senza dover cambiare i riferimenti. .

Grazie

risposta

7

Perché non inserire i tre MDE nella stessa cartella sul sistema di destinazione? L'accesso dovrebbe trovare i riferimenti MDE bene.

Oppure si sta utilizzando la logica del componente aggiuntivo con la tabella USysRegInfo? Non hai davvero bisogno di farlo con i tuoi add-in. Solo con componenti aggiuntivi dello sviluppatore come Trova e sostituisci di Rick Fisher.

Se questo non funziona, comunicaci i messaggi di errore o i sintomi.

+0

fantastico. Darò il via. –

+0

Funziona a meraviglia. Grazie. Non avevo idea che avrebbe cercato di risolvere i riferimenti in modo tale. –

+0

BTW è anche possibile utilizzare l'utilità gratuita Auto FE Updater su http://www.autofeupdater.com/ per rendere il download di tutte le nuove versioni relativamente indolore.Si noti inoltre che se il FE principale è un MDE e si apportano modifiche agli MDE di riferimento, è necessario creare anche un nuovo FE MDE. –

4

per ottenere il percorso del file per l'applicazione di accesso

CurrentProject.Path & "\" 

Poi basta aggiungere gli altri file nella stessa directory e farli per nome. Ad esempio

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

sfortunatamente quindi il mio codice non verrà compilato ... (a meno che non mi sia spostato verso l'associazione tardiva suppongo) –

+0

ah, ora capisco. Penso che l'associazione tardiva potrebbe essere la strada da percorrere con questo. –

+0

Russ, potresti spiegare in che modo l'associazione tardiva funzionerebbe con Access MDBs/MDEs? Non sono a conoscenza di come farlo. –

0

È possibile aggiungere riferimenti VBA tramite VBA stesso.

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

Application.References.AddFromFile sFilename 

Mettilo nella tua AutoExec e quel riferimento dovrebbe essere disponibile per tutto. Naturalmente, dovrai verificare se il riferimento esiste già prima di aggiungerlo, altrimenti otterrai un errore. Ma è solo questione di passare da Application.References.

+1

Se il poster originale sta distribuendo l'app come MDE/ACCDE questa soluzione ha vinto " lavoro come non è possibile aggiornare i riferimenti in un MDE/ACCDE. –