Newsgroup: it.comp.appl.access
Titolo: Problema di automazione con Word

Salve a tutti.
Da giovedì scorso un'applicazione Access integrata con Word per la stampa di documenti, al momento dell'apertura dei
suddetti emette il seguente messaggio:
"Errore 4605 Il metoto o la proprietà open non è disponibile. L'autorizzazione per il documento è limitata:"
L'errore si verifica quando il codice VBA esegue l'istruzione di apertura del documento Word.
Una stranezza è che l'errore non si presenta sempre, per cui non può essere veramente un problema di autorizzazioni.
Dal momento in cui l'errore si presenta per la prima volta, l'unico modo per farlo sparire per un po' è riavviare il pc.
Inutile dire che l'applicazione in questione è usata da anni, così come la funzione in questione che stampa i documenti
Word sostiuendo i bookmark con il contenuto letto dalle tabelle Access.
Ho il fortissimo sospetto che tutto dipenda da un qualche aggiornamento rilasciato da Microsoft la scorsa settimana ...
Di seguito il codice in questione, riportato fino all'istruzione che produce l'errore.
Sub StampaDocWord(pNomeDoc As String, pOrigine As String, pCond As String, Optional pCopie As Long = 1, Optional pSave
As String = "N", Optional pDest As String = "S", Optional pWord As Boolean = False, Optional pRange As String = "")
' Esegue la stampa "unione" di un documento Word con la tecnica dei bookmark
'
' Parametri in ingresso:
'
' pNomeDoc      : Nome, completo di percorso, del documento Word da stampare
' pOrigine      : Nome dell'origine dati principale per il documento
' pSave         : Opzione per salvataggio documento: S=Salva, N=Non salva, P=Chiede se salvare
' pDest         : Destinazione stampa unione: S=Stampante, F=Fax, M=e-mail, D=Documento
On Error GoTo Err_StampaDocWord
Dim appWrd As Object, wrdDoc As Object, nSave As Long
Dim wrdRange As Object, wrdTable As Object, wrdBkm As Object, stNomeDoc As String
Dim rsMain As Recordset, rsTbl As Recordset, stTbl As String, i As Byte, jFld As Byte, stSQL As String
Dim stPasso As String, nPos As Integer
Const wdMainAndDataSource As Byte = 2
Const wdDoNotSaveChanges As Long = 0, wdSaveChanges As Long = -1, wdPromptToSaveChanges As Long = -2
Const wdSendToEmail As Byte = 2, wdSendToFax As Byte = 3, wdSendToNewDocument As Byte = 0, wdSendToPrinter As Byte = 1
Const wdSortByName As Byte = 0, wdGoToBookmark As Long = -1
Const wdPrintCurrentPage As Byte = 2, wdPrintRangeOfPages As Long = 4, wdPrintAllPages As Long = 0
Const wdPrintDocumentContent As Long = 0, wdPrintAllDocument As Long = 0
 
  If Dir(pNomeDoc) = "" Then
     MsgBox "Il documento " & vbCrLf & pNomeDoc & vbCrLf & " non è stato trovato", vbCritical + vbOKOnly
     Exit Sub
  End If
  stPasso = "Copia del documento"
  If InStr(1, pNomeDoc, PercorsoDB) = 0 Then
     stNomeDoc = PercorsoDB & StrReverse(Left$(StrReverse(pNomeDoc), InStr(1, StrReverse(pNomeDoc),
StrReverse(PercorsoFile(pNomeDoc))) - 1))
     FileCopy pNomeDoc, stNomeDoc
     pNomeDoc = stNomeDoc
  End If
 
  Select Case pSave
    Case Is = "S"
      nSave = wdSaveChanges
    Case Is = "N"
      nSave = wdDoNotSaveChanges
    Case Is = "P"
      nSave = wdPromptToSaveChanges
  End Select
 
  If pDest = "D" And Dir(PercorsoDB & "Doc", vbDirectory) = "" Then ' Cartella appoggio documenti
     MkDir PercorsoDB & "Doc"                                       ' Se non esiste la crea
  End If
 
  stPasso = "Apertura Word"
  DoCmd.Hourglass True
  Set appWrd = GetObject(, "Word.Application")
 
  stPasso = "Apertura del documento Word selezionato"
  Set wrdDoc = appWrd.Documents.Open(pNomeDoc, True, False)
Grazie in anticipo a chiunque risponderà.


Ciao Vincenzo...!
Vedo un GetObject immagino ci sia una gestione errori con un
CreateObject da qualche parte...?
Spero non sia queto il problema, il GetObject funziona solo se esiste
un'istanza di Word aperta ma se non esiste otterresti errore 429...
Sono certo tu abbia previsto questo... ma si sa mai...
Detto questo io uso molto abbondantemente l'automazione con Word ed
Excel ed a parte i problemi con i nuovi formati docx e xlsx direi che
non ho mai riscontrato
un problema simile.
P.S. qualche mese fà avevo provato a contattarti privatamente, non sò
se non hai ricevuto la mail... e non sò se l'indirizzo al quale l'ho
inviata sia ancora valido... ho usato l'indirizzo del dominio di
AccessGroup.
Posso eventualmente riprovare oppure puoi darmi un indirizzo
fruibile...?
Grazie.
@Alex

@Alex
Grazie a te della risposta.

 Grazie a te della risposta.
Al lavoro effettuvamente abbiamo Office2003, quindi effettivamente
nulla di nuovo...
A casa invece sul portatile ho Office2007, ed ho un'applicativo per
mia moglie...(quelle sante ricette di cucina) che abusa di Word ed
Excel, ma effettivamente non ho installato
nessun aggiornamento dal mese di Ottobre... quindi a questo punto mi
guardo bene dal farlo...
Per il resto ti scrivo questa serata all'indirizzo.
Ciao
@Alex

 Grazie in anticipo a chiunque risponder�.
Forse il problema � sui file temporanei (spesso condivisi da Outlook e Word) 
nella stessa cartella e in contemporaneit� con Outlook aperto.
Se cos� fosse basterebbe cambiare il percorso, in Word, di salvataggio per i 
file temporanei.
Altro tentativo � quello di far partire Word con l'opzione /a (winword.exe 
/a).
Ciao, Carlo 

(...)
La routine VB che effettua la stampa del documento, tentava di aprire un documento Word senza prima crearlo.
La creazione era demandata alla routine di gestione degli errori al verificarsi dell'errore 429. 
Quindi in pratica, poichè l'oggetto Word è locale alla routine e viene distrutto quando la routine termina, ad ogni
richiamo di questa si verificava l'errore 429 non appena la routine stessa tentava di aprire il documento; quindi
l'oggetto Word veniva creato e la routine proseguiva regolarmente.
La soluzione è consistita nel creare l'oggetto Word appena entrati nella routine ed evitando quindi il verificarsi
dell'errore 429.
Credo che il verificarsi dell'errore 4605 dipendesse da una "sporcatura" o mancata pulizia delle areee di memoria
utilizzate da Access e/o da Word determinata dal numero esorbitante di errori 429 (alcune centinaia al giorno ... ) che
si verificavano, anche se questi venivano gestiti correttamente.

?"VT @ home"  ha scritto nel messaggio 
news:l646i65sggg22qdh0...@4ax.com...





__
Perchè non metti byte su schermo e lo mandi ad AccessGroup.it???
MA