OLE Access VB Erreur 462 : l'ordinateur serveur distant n'existe pas ou n'est pa

Résolu
jplausanne Messages postés 12 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 1 juillet 2012 - 28 juin 2012 à 16:29
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 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
.....

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 juil. 2012 à 02:17
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
---
3
jplausanne Messages postés 12 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 1 juillet 2012
1 juil. 2012 à 10:49
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!
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 juil. 2012 à 14:45
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
---
0
Rejoignez-nous