Newsgroup: it.comp.appl.access
Titolo: automazione word errore 426

Ciao a tutti, scusate la lunghezza del post ma non so più che pesci 
pigliare.
Il seguente codice è un riadattamento di una routine che mi ha sempre 
funzionato.
Ho semplicemente inserito un recordset.
A volte sul click mi si blocca e mi restituisce un messaggio di errore n.426 
"il computer o server remoto non esiste"
e mi lascia nel taskmanager un'istanza di word da 18 mega che devo 
manualmente interrompere.
Se non ho capito male dovrei aver usato il late binding, ma i riferimenti 
word ci sono lo stesso.
Private Sub Comando69_Click()
    Dim wordApp As Object, wordDoc As Object
    Dim blOpen As Boolean
    On Error Resume Next
    blOpen = True
    Dim percorso As String, nprot As String
    Dim fileexist As String, template1 As String, template As String
    nprot = Me![nprotocollo]
    percorso = "j:\protocollomaster\1\" & nprot & ".doc"
    fileexist = nprot & ".doc"
    template1 = DLookup("[nomefile]", "modelli", "[IDmodello] =" & 
Me.modello)
    template = "j:\protocollomaster\" & template1
    Dim MyFile, MyPath, MyName
    MyFile = Dir(percorso)
    If MyFile = fileexist Then
    MsgBox ("Il documento è già presente")
    Me![Comando69].HyperlinkAddress = percorso
    ElseIf MyFile <> file Then
    If MsgBox("Il documento non è presente " & Chr(10) & "verrà creato 
ora.", 276, "Attenzione") = vbYes Then
    On Error GoTo gestErrori
    If Err.Number = 429 Then
    Set wordApp = GetObject(, "Word.Application")
    blOpen = False
    Err.Number = 0
    End If
    If IsNull(Me.oggetto) Then
    MsgBox "Attento all'oggetto", vbCritical, "oggetto mancante"
    Me.oggetto.SetFocus
    Else
    Dim Rst As DAO.Recordset
    Dim Record As String, SQL As String
    Dim Tbl As String * 1, Tbl1 As String * 1
    SQL = "SELECT * FROM tbl_dettaglio_uscita WHERE IDprotocollo=" & 
Me.Idprotocollo & " ;"
    Set Rst = CurrentDb.OpenRecordset(SQL)
'    If Not Rst.BOF Then 'se il recordset non è vuoto
            Tbl = vbCrLf
'
        With Rst
            Totale = 0 '
            .MoveLast
            .MoveFirst
            While Not .EOF
           Record = Record & Tbl & !destinatario1 & Tbl & _
                    !ufficio & " " & vbCrLf & !referente_ufficio & Tbl & _
                     vbCrLf & !via & "," & !civico & " " & vbCrLf & _
                      vbCrLf & "fax. " & !fax & vbCrLf & _
                    !cap & " " & !citta & " (" & !provincia & ")" & vbCrLf
            .MoveNext
            Wend
        End With
        Rst.Close: Set Rst = Nothing
    Set wordApp = CreateObject("Word.Application")
    Set wordDoc = wordApp.Documents.Add(template)
    With wordDoc
        .Bookmarks("mittente").Select
        wordApp.Selection.Text = Me![mittente]
        wordApp.Selection.Range.Font.Bold = False
        .Bookmarks("destinatario").Select
        wordApp.Selection.Text = Me![destinatario] & vbCrLf & 
Me![referente_ufficio] & " " & vbCrLf & "Fax:" & Me![fax] _
        & vbCrLf & Me![via] & ", " & Me![civico] & vbCrLf & Me![cap] & " - " 
& Me![citta] & " - " & "(" & Me![provincia] & ")"
        With wordApp.Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(10#)
        End With
        .Bookmarks("nprotocollo").Select
        wordApp.Selection.Text = nprotocollo
        .Bookmarks("oggetto").Select
        wordApp.Selection.Text = oggetto
        .Bookmarks("datadoc").Select
        wordApp.Selection.Text = Format(datadoc, "dd.mm.yyyy")
        wordApp.Selection.Range.Font.Bold = False
        .Bookmarks("record").Select
        wordApp.Selection.Text = Record
        With wordApp.Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(10#)
        End With
        wordApp.Visible = True
        wordApp.Activate
        .SaveAs FileName:=percorso
    End With
    wordApp.Application.WordBasic.MsgBox "Esportazione terminata", 
"Esportazione dati da Access"
    End If
    If Not blOpen Then
    wordDoc.Close savechanges:=True
    wordApp.Application.Quit
    End If
    End If
esci:
    Set wordDoc = Nothing
    Set wordApp = Nothing
    Exit Sub
gestErrori:
    MsgBox Err.Number & " - " & Err.Description
    GoTo esci
    End If
End Sub
-- 
ciroteo
MC
http://www.marco5x.net/usenet/index.html
http://www.freewebz.com/iosononiubbo/iosononiubbo.htm#quotare
 

 "il computer o server remoto non esiste"
[CUT]
Togli 'On Error ...' e vedi su che riga si ferma.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


totale = 0 ...
come vedi è il tuo esempio riadattato ... ;-)


 End Sub
Cosa sarebbe Totale....???
Sbaglio o non è dichiarata...???
Se può esserti utile, visto che usi Bookmarks OMONIMI
dei Controlli puoi semplificare con questa routine da riadattare
alle tue esigenze, serve per evitare di scrivere tante righe
quanti sono i Bookmarks, nel mio caso anche il nome CAMPO di 
origine è "casualmente" OMONIMO e con queste 8 righe semplifico
tutto:
For Each fld In Me.RecordsetClone.Fields
      If Me.Controls(fld.Name).TAG <> "EXCLUDE" Then
         If Not IsNothing(Me.Controls(fld.Name).Value) Then
            If wordDoc.Bookmarks.Exists(fld.Name) Then
               wordDoc.Bookmarks(fld.Name).Select
               wordApp.Selection.TypeText Text:=Me.Controls(fld.Name).Value
            End If
         End If
      End If
   Next
Ciao
@Alex
-- 


 ha scritto nel messaggio
news:d71kf4$p1l$1...@news.newsland.it...

eheh ... il solito colpetto di fino ... grazie alex proverò questa tua
soluzione.

 come vedi è il tuo esempio riadattato ... ;-)
E che te ne fai di quel totale? La variabile non è dichiarata e non è
usata in nessun altro posto. Che sia un residuo di precedenti versioni
della sub?
Dal tipo di errore sembrerebbe un oggetto, più che una variabile.
Prova anche a cambiare il nome, totale è così generico che potrebbe
collidere con qualche parola riservata. Prova SpesaTotale, TotaleGiorni,
ecc...
Ciao.
Namor



non hai capito, era il rimasuglio di una tua versione riadattata ...
risolto! Grazie ancora.
p.s. come è possibile sapere a cosa corrisponde l'errore numero tal dei
tali?

Prova questo:
http://groups.google.it/group/it.comp.appl.access/browse_frm/thread/bc8fe597aa10eafe
Namor


grazie ottimo link ... avrei potuto cercare io ... ma questo caldo mi 
impigrisce ! ;-)