Newsgroup: it.comp.appl.access
Titolo: attivare via codice vba il riferimento a tutte le versioni di Microsoft Word xx.x Object Library

Buongiorno a tutti,
avrei bisogno di un aiuto circa il seguente problema:
ho realizzato un applicativo che gira su vari PC sui quali sono installate 
le varie versioni di Microsoft Office (2003, 2007, 2010 e 2013).
Tramite il prezioso aiuto del Newsgroup, ho il codice vba per attivare e 
rimuovere i riferimenti a Microsoft Word 11.0 Object Library:
================================================================
 
Per aggiungere la Reference di Word ecco il codice
================================================================
Private Sub Command15_Click()
Dim i As Reference
For Each i In Application.References
    If i.Name = "Word" Then
        Exit Sub
    End If
Next
 
' Aggiunge Word_Reference se non esiste
'Application.References.AddFromFile _
"C:\Program Files\Microsoft Office\office11\MSWORD.OLB"
 
Application.References.AddFromGuid _
"{00020905-0000-0000-C000-000000000046}", 8, 3
 
End Sub
================================================================
 
================================================================
Per rimuovere la Reference di Word ecco il codice
================================================================
 
Private Sub Command28_Click()
Dim i As Reference
For Each i In Application.References
    If i.Name = "Word" Then
        GoTo RemoveRef
    End If
Next
Exit Sub
 
RemoveRef:
    Application.References.Remove i
 
End Sub
================================================================
 
Ora vorrei poter disporre del codice vba per attivare (in un'unica routine) 
e rimuovere (in un'unica routine) il codice di tutte le versioni di Word sui 
vari PC.
Per cortesia, potrei avere un aiuto circa il codice da utilizzare ?
Grazie a tutti.
Un saluto
Lucky 
 
 

Lucky laid this down on his screen :

La subroutine che t'ho inviato dovrebbe valere per
l'eliminazione di Reference Word, di qualunque versione si tratti.
 
Per l'inserimento invece è necessario conoscere gli specifici
parametri GUID+Major+Minor oppure l'esatto nome del file.
O gli uni o gli altri aggiungi poi alla routine, facendo in modo
che ti venga chiesto quale versione inserire.
Con la solo parola "Word" non puoi aggiungere nulla.
 
Bruno

 Per l'inserimento invece č necessario conoscere gli specifici


 Secondo te, potrebbe andar bene ?
Così facendo verrebbero installate tutte le Reference
che possono coesistere e verrebbe generato errore alla
volta di quelle che non possono coesistere.
Non mi sembra una buona soluzione.
 
Poi un'altra cosa: con i parametri Guid installi una reference
il cui file esista già registrato nel PC.
Ma questo file normalmente non esiste sul PC nel quale
la Reference cui si riferisce non è installata.
Detto file viene installato dalla versione di Office
al momento dell'installazione.
 
Non puoi con un unico file. sempre uguale per tutti, risolvere
il problema che ti sei posto.
 
1 - devi copiare il file della Reference che vuoi installare
    sul quel determinato PC
2 - riportare il nome e il path corretti nella routine VBA
3 - eseguire l'installazione usando appunto il file name
    e non i parametri Guid.
 
Bruno

 Bruno
 
 
perchï¿œ complicarsi cosi la vita quando con il late-binding si dormirebbe 
tranquilli?
 
 
ciao
BFS

 di Word sui vari PC.
 
 
 
... come volevasi dimostrare: usa l'associazione tardiva.
 
Saluti. 
 
 

 BFS