OLE Access VB Erreur 462 : l'ordinateur serveur distant n'existe pas ou n'est pa [Résolu]

Signaler
Messages postés
12
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
1 juillet 2012
-
Messages postés
14675
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2020
-
Bonjour,

J'ai un module VB qui lit une table où les enregistrements contiennent un objet OLE (embedded). Pour chaque enregistrement: le document est ouvert (dans Word) et sauvegardé sur le disque.
A la première exécution cela fonctionne mais dès la deuxième, c'est l'erreur
" Erreur 462 : l'ordinateur serveur distant n'existe pas ou n'est pas disponible"

J'ai trouvé sur Internet (aussi sur le site de Microsoft) qu'il fallait qualifier les méthodes donc remplacer With ActiveDocument par quelque chose style WordApp.Activement document. Le problème c'est que la fenêtre Word est ouverte via les objets OLE (acOLEActivate et acOLEVerbOpen) et pas par l'ouverture d'un document (par exemple présent sur le disque) dans Word.

Comment dans ce cas de figure qualifier Activedocument de façon à éviter cette erreur 462 après la première exécution?

Extrait du code ci-dessous

Merci beaucoup d'avance


Do Until RecSet.EOF

DoCmd.OpenForm "Form Document OLE", , , stLinkCriteria, acFormEdit
Set ctl = Forms![Form Document Confidentiel OLE]![Document]
With ctl
.Action = acOLEActivate
.Verb = acOLEVerbOpen
End With
On Error Resume Next


Set WordApp = GetObject(ActiveDocument)
With ActiveDocument
.Activate
.SaveAs FileName:="c:\DocumentOLE.doc"' Ceci n'est qu'un exemple le fichier de sortie porte un nom différent pour chaque document
.close
.....

3 réponses

Messages postés
14675
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2020
143
Bonjour,

Essayes peut être WordApp.ActiveDocument, sinon, regardes en pas à pas quand le serveur OLE est déchargé.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Messages postés
12
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
1 juillet 2012

Bonjour,

effectivement il faut bien jouer sur WordApp mais en modifiant le code donc en remplaçant

Set WordApp = GetObject(ActiveDocument ")
par
Set WordApp = GetObject(, "Word.Application")
sinon à l'exécution de
With WordApp.ActiveDocument
le système dira qu'il n'y a aucun document actif

Le code modifié est qui fonctionne est donc:
Set WordApp = GetObject(, "Word.Application")

If WordApp.Documents.Count >= 1 Then ' Vérifie qu'un document Word est bien ouvert
With WordApp.ActiveDocument
.Activate
.SaveAs FileName:="c:\DocumentOLE.doc"
. close
End With
Else
MsgBox "Aucun document n'est ouvert"
End If

Merci infiniment d'avoir pris le temps de répondre!
Messages postés
14675
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2020
143
Bonjour,

De rien :)

Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---