Newsgroup: it.comp.appl.access
Titolo: funzione SHELL - interazione access/word

Su un controllo associato di una maschera, all'evento su click, ho
associato una routine evento utilizzando la funzione shell. Quello che
devo fare è aprire un documento word contenuto in una cartella del
disco (i documenti sono del tipo "1.doc", "2.doc", "3.doc" ecc);
ovviamente devo aprire solo il documento relativo al numero contenuto
in un altro campo della tabella, in cui ho solo il numero del
documento (1, 2, 3, ecc).
L'istruzione che scrivo è la seguente
Shell "winword.exe ""G:
\cartella1\cartella2\cartella3\cartella4\cartella 5\""" & Me!miocampo
& ".doc", vbMaximizedFocus
Word si apre ma non sul documento che voglio (mi dice percorso
sbagliato, file inesistente ecc ecc)
Probabilmente sbaglio mettere le virgolette nei posti giusti. Qualcuno
mi può aiutare?
PS: le due virgolette prima del percorso del file ci sono perché il
nome di una cartella contiene degli spazi. Ho letto da qualche parte
sul newsgroup che in questi casi va messo una doppia virgoletta che
apre e chiude il percorso del file. In altri casi questa cosa
funziona.
Grazie mille

 wrote in message 
news:1172759610.3...@30g2000cwc.googlegroups.com...
Su un controllo associato di una maschera, all'evento su click, ho
associato una routine evento utilizzando la funzione shell. Quello che
[...]
1 - il path può essere troppo lungo; non quale sia il limite ma esiste.
2 - hai usato male le virgolette; segui questa traccia:
Shell "winword.exe ""c:\Tuo Path\" & _
                                [Tuo Campo] & _
                               ".doc""", vbMaximizedFocus
Bruno


Devi a tutti i costi usare Shell....?
Hai pensato ad usare il metodo FolloHyperlink e passare il percorso
del File...
Quando è possibile è sempre meglio usare cose semplici:
Su Click:
   Application.FollowHyperlink PercorsoFileDOC, , True
Apre di Default il programma EXE associato al file quindi non hai
bisogno di nulla...!
@Alex

 news:1172759610.3...@30g2000cwc.googlegroups.com...

Forse Me!miocampo è numerico e non viene interpretato correttamente. Prova 
così:
Shell "winword.exe ""G:\cartella1\cartella2\cartella3\cartella4\cartella 
5\""" & mid$(str$(val(Me!miocampo)),2) & ".doc", vbMaximizedFocus
Ciao
Antonio

 >news:1172762851.3...@z35g2000cwz.googlegroups.com...

Non avevo visto le vostre risposte ed ho risposto fuori sequenza.
In passato ho provato ad usare il followhyperlink e per word andava 
benissimo, mentre mi dava dei problemi per i files pdf e per le immagini 
gif, jpg etc. In pratica non si avviava il programma che parte di solito 
facendo click sul file in esplora risorse, ma un altro, quantunque 
pertinente. Ho risolto l'inconveniente facendo così:
    Set wshshell = CreateObject("wscript.shell")
    wshshell.Run Chr$(34) & filedaaprire & Chr$(34)
    Set wshshell = Nothing
Ciao
Antonio


Non ho pensato di usare FollowHyperlink per il banale motivo che non
lo conoscevo. Avevo provato ad aprire word con Dim appWord As New
Word.Application ma dovevo installare dei riferimenti che mi creavano
problemi gestando il file con differenti versioni di word.

 wrote in message

ok funziona. sbagliavo a mettere le virgolette. grazie

 - Mostra testo tra virgolette -
Beh se fosse per questo esiste il LateBinding....
Dim objW
Set ObjW=CreateObject("Word.Application")
e non servono i riferimenti....
@Alex


Mai avuto problemi con questo metodo, in quanto sfrutta l'associazione
delle estensioni del registro... e a meno che tu non abbia martoriato
il tuo PC con installazioni di programmi che facevano macelli non è
possibile.
La riprova la avresti tentando di estrarre con FindExe l'Eseguibile
associato...!
Se anche quello non funzione la colpa è del macello sui Registry...
In ogni caso gli sono state fornite tutte le soluzioni possibili vedrà
lui cosa fare...
@Alex