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

Messages postés
12
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
1 juillet 2012
- - Dernière réponse : NHenry
Messages postés
14358
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
22 janvier 2019
- 1 juil. 2012 à 14:45
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
.....
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
14358
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
22 janvier 2019
366
3
Merci
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
---

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
12
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
1 juillet 2012
3
Merci
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!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jplausanne
Messages postés
14358
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
22 janvier 2019
366
0
Merci
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
---
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.