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

jplausanne 12 Messages postés mercredi 17 décembre 2008Date d'inscription 1 juillet 2012 Dernière intervention - 28 juin 2012 à 16:29 - Dernière réponse : NHenry 14277 Messages postés vendredi 14 mars 2003Date d'inscription 21 octobre 2018 Dernière intervention
- 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
NHenry 14277 Messages postés vendredi 14 mars 2003Date d'inscription 21 octobre 2018 Dernière intervention - 1 juil. 2012 à 02:17
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
---

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de NHenry
Meilleure réponse
jplausanne 12 Messages postés mercredi 17 décembre 2008Date d'inscription 1 juillet 2012 Dernière intervention - 1 juil. 2012 à 10:49
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!

Merci jplausanne 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de jplausanne
NHenry 14277 Messages postés vendredi 14 mars 2003Date d'inscription 21 octobre 2018 Dernière intervention - 1 juil. 2012 à 14:45
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.