Newsgroup: it.comp.appl.access
Titolo: Errore di automazione Server RPC non disponibile.

Ciao uso Win2000 su A97
Sto cercando di creare un'automazione tra Access e Word. Devo soltanto
scrivere in un documento di Word ben definito il valore del campo
"Localizzazione" del DB sopra un segnalibro esistente di Word.
La cosa mi riesce abbastanza bene, visto che la porzione di codice riferita
a Word l'ho creata con una macro e quindi copiata in Access. Difatti la
procedura, che ho associato ad un bottone, funzione bene ma solo una volta
visto che la seconda volta che la faccio partire mi restituisce il seguente
errore:
 -
2147023174
Errore di automazione
Server RPC non disponibile.
Non ho idea di cosa voglia dire, anche perchč č la prima volta che mi
compare un errore del genere, forse e win2000.
Sapete dirmi qualcosa al riguardo?
Grazie a tutti in anticipo
Ciao
Private Sub Comando66_Click()
On Error GoTo Err_Comando66_Click
    Dim oApp As Object
    Dim Odoc As Word.Documents
    Dim PercorsoDoc As String
    Set oApp = CreateObject("Word.Application")
    Set Odoc = oApp.Documents
    'Ricavo il percorso del file dalla tabella percorsi
    PercorsoDoc = DLookup("percorso", "Percorsi")
    Odoc.Open FileName:=PercorsoDoc, ReadOnly:=True
    On Error Resume Next
    Selection.Goto What:=wdGoToBookmark, Name:="Localizzazione"
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    'Verifico se il campo localizzazione č pieno
    'L'errore si verifica quě
    If Me.localizzazione <> "" Then Selection.TypeText
Text:=Me.localizzazione
    oApp.Visible = True
    Set oApp = Nothing
    Set Odoc = Nothing
Exit_Comando66_Click:
    Exit Sub
Err_Comando66_Click:
    MsgBox Err.Description
    'in caso di errori chiude e annulla le variabili
    Odoc.Close
    Set oApp = Nothing
    Set Odoc = Nothing
    Resume Exit_Comando66_Click
End Sub

 End Sub
L'oggetto Selection non è parte di access ma di word (in questo caso); se lo
utilizzavi con VBA in word non c'era problema (infatti la macro generata da
word non inserisce nessun riferimento prima del Selection), mentre con
access e OLE devi farlo precedere dall'oggetto al quale fai riferimento.
Poi se hai inserito i riferimenti alla libreria di word perché non dichiari
esplicitamente gli oggetti per quello che sono?
Prova così:
'------------------------
Private Sub Comando66_Click()
On Error GoTo Err_Comando66_Click
    Dim oApp As Word.Application
    Dim Odoc As Word.Documents
    Dim PercorsoDoc As String
    Set oApp = CreateObject("Word.Application")
    Set Odoc = oApp.Documents
    'Ricavo il percorso del file dalla tabella percorsi
    PercorsoDoc = DLookup("percorso", "Percorsi")
    Odoc.Open FileName:=PercorsoDoc, ReadOnly:=True
    On Error Resume Next
    oApp.Selection.Goto What:=wdGoToBookmark, Name:="Localizzazione"
    oApp.Selection.Find.ClearFormatting
    With oApp.Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    'Verifico se il campo localizzazione è pieno
    'L'errore si verifica quì
    If Me.localizzazione <> "" Then
        oApp.Selection.TypeText  Text:=Me.localizzazione
        oApp.Visible = True
    End if
    Set oApp = Nothing
    Set Odoc = Nothing
Exit_Comando66_Click:
    Exit Sub
Err_Comando66_Click:
    MsgBox Err.Description
    'in caso di errori chiude e annulla le variabili
    Odoc.Close
    Set oApp = Nothing
    Set Odoc = Nothing
    Resume Exit_Comando66_Click
End Sub
'------------------------
Ciao.
--
Sergio MAZZA