OVH Cloud OVH Cloud

probleme de code

13 réponses
Avatar
domi
bonjour a tous

ce code me serts pour copier le contenu d'un champ ole
dans un repertoire en format WORD
tout se passe bien j'ai bien mon fichier WORD
mais apres avoir exécute l'action
Dand le gestionnaire des taches dans onglet Applications
Microsoft Word ne s'y trouve pas
mais dans l'onglet Processus WINWORD.EXE
lui est encore présent
que faire avec ce code pour empecher cela?


---------------------------------code a modifier
Private Sub Commande67_Click()
aa.Object.Application.Options.BackgroundSave = True
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:\PDF\TEMP.doc"
end sub
----------------------------------------------------

10 réponses

1 2
Avatar
Jean-Marc
"domi" a écrit dans le message de
news:41a9ada5$0$31960$
bonjour a tous

ce code me serts pour copier le contenu d'un champ ole
dans un repertoire en format WORD
tout se passe bien j'ai bien mon fichier WORD
mais apres avoir exécute l'action
Dand le gestionnaire des taches dans onglet Applications
Microsoft Word ne s'y trouve pas
mais dans l'onglet Processus WINWORD.EXE
lui est encore présent
que faire avec ce code pour empecher cela?


---------------------------------code a modifier
Private Sub Commande67_Click()
aa.Object.Application.Options.BackgroundSave = True
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"
end sub
----------------------------------------------------




Hello,

voir la discussion précédente intitulée :
"Set W_App = Nothing ne marche pas"

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Pat Dev VB
Déjà, Premier point : Bien refermer tous les objets.

C'est-à-dire : Set MonObjet = Nothing.

C'est la règle.
A suivre.

"domi" a écrit :

bonjour a tous

ce code me serts pour copier le contenu d'un champ ole
dans un repertoire en format WORD
tout se passe bien j'ai bien mon fichier WORD
mais apres avoir exécute l'action
Dand le gestionnaire des taches dans onglet Applications
Microsoft Word ne s'y trouve pas
mais dans l'onglet Processus WINWORD.EXE
lui est encore présent
que faire avec ce code pour empecher cela?


---------------------------------code a modifier
Private Sub Commande67_Click()
aa.Object.Application.Options.BackgroundSave = True
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"
end sub
----------------------------------------------------





Avatar
domi
oui j'ai testé mais ça marche pas a tout les coups c'est pas tres fiable

une autre solution??????
MERCI


"Jean-Marc" a écrit dans le message de news:
41a9b287$0$30703$
"domi" a écrit dans le message de
news:41a9ada5$0$31960$
> bonjour a tous
>
> ce code me serts pour copier le contenu d'un champ ole
> dans un repertoire en format WORD
> tout se passe bien j'ai bien mon fichier WORD
> mais apres avoir exécute l'action
> Dand le gestionnaire des taches dans onglet Applications
> Microsoft Word ne s'y trouve pas
> mais dans l'onglet Processus WINWORD.EXE
> lui est encore présent
> que faire avec ce code pour empecher cela?
>
>
> ---------------------------------code a modifier
> Private Sub Commande67_Click()
> aa.Object.Application.Options.BackgroundSave = True
> aa.Object.Application.Options.AllowFastSave = True
> aa.Object.SaveAs "C:PDFTEMP.doc"
> end sub
> ----------------------------------------------------


Hello,

voir la discussion précédente intitulée :
"Set W_App = Nothing ne marche pas"

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."




Avatar
Pat Dev VB
Combien d'instances de word as-tu dans le gestionniare des processus à la fin
de ton programme ?

"domi" a écrit :

oui j'ai testé mais ça marche pas a tout les coups c'est pas tres fiable

une autre solution??????
MERCI


"Jean-Marc" a écrit dans le message de news:
41a9b287$0$30703$
> "domi" a écrit dans le message de
> news:41a9ada5$0$31960$
> > bonjour a tous
> >
> > ce code me serts pour copier le contenu d'un champ ole
> > dans un repertoire en format WORD
> > tout se passe bien j'ai bien mon fichier WORD
> > mais apres avoir exécute l'action
> > Dand le gestionnaire des taches dans onglet Applications
> > Microsoft Word ne s'y trouve pas
> > mais dans l'onglet Processus WINWORD.EXE
> > lui est encore présent
> > que faire avec ce code pour empecher cela?
> >
> >
> > ---------------------------------code a modifier
> > Private Sub Commande67_Click()
> > aa.Object.Application.Options.BackgroundSave = True
> > aa.Object.Application.Options.AllowFastSave = True
> > aa.Object.SaveAs "C:PDFTEMP.doc"
> > end sub
> > ----------------------------------------------------
>
>
> Hello,
>
> voir la discussion précédente intitulée :
> "Set W_App = Nothing ne marche pas"
>
> --
> Jean-marc
> "There are only 10 kind of people
> those who understand binary and those who don't."
>
>





Avatar
domi
MERCI mais si tu regardes le code il n'y a pas de SET

Private Sub Commande67_Click()
aa.Object.Application.Options.BackgroundSave = True
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"
end sub





"Pat Dev VB" a écrit dans le message de
news:
Déjà, Premier point : Bien refermer tous les objets.

C'est-à-dire : Set MonObjet = Nothing.

C'est la règle.
A suivre.

"domi" a écrit :

> bonjour a tous
>
> ce code me serts pour copier le contenu d'un champ ole
> dans un repertoire en format WORD
> tout se passe bien j'ai bien mon fichier WORD
> mais apres avoir exécute l'action
> Dand le gestionnaire des taches dans onglet Applications
> Microsoft Word ne s'y trouve pas
> mais dans l'onglet Processus WINWORD.EXE
> lui est encore présent
> que faire avec ce code pour empecher cela?
>
>
> ---------------------------------code a modifier
> Private Sub Commande67_Click()
> aa.Object.Application.Options.BackgroundSave = True
> aa.Object.Application.Options.AllowFastSave = True
> aa.Object.SaveAs "C:PDFTEMP.doc"
> end sub
> ----------------------------------------------------
>
>
>


Avatar
YannX
Bnjr,

[HS = idée dérivée de ce fil ]
Y a-t-il une solution efficace pour fermer
automatiquement une application dérivée
(typiquement Excel ou Word), lancée
à partir de VB-IDE, qd on ferme l'interpretation du pgm !

Evidement le programme utilisateur s'était planté........
Donc pour revenir a une situation propre....

YannX


"Pat Dev VB" a écrit dans le message de
news:
Déjà, Premier point : Bien refermer tous les objets.

C'est-à-dire : Set MonObjet = Nothing.

C'est la règle.
A suivre.

"domi" a écrit :

> bonjour a tous
>
> ce code me serts pour copier le contenu d'un champ ole
> dans un repertoire en format WORD
> tout se passe bien j'ai bien mon fichier WORD
> mais apres avoir exécute l'action
> Dand le gestionnaire des taches dans onglet Applications
> Microsoft Word ne s'y trouve pas
> mais dans l'onglet Processus WINWORD.EXE
> lui est encore présent
> que faire avec ce code pour empecher cela?
>
>
> ---------------------------------code a modifier
> Private Sub Commande67_Click()
> aa.Object.Application.Options.BackgroundSave = True
> aa.Object.Application.Options.AllowFastSave = True
> aa.Object.SaveAs "C:PDFTEMP.doc"
> end sub
> ----------------------------------------------------
>
>
>


Avatar
Jean-Marc
c'est bien le problème!

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"domi" a écrit dans le message de
news:41a9bb9a$0$25071$
MERCI mais si tu regardes le code il n'y a pas de SET

Private Sub Commande67_Click()
aa.Object.Application.Options.BackgroundSave = True
aa.Object.Application.Options.AllowFastSave = True
aa.Object.SaveAs "C:PDFTEMP.doc"
end sub





"Pat Dev VB" a écrit dans le message


de
news:
> Déjà, Premier point : Bien refermer tous les objets.
>
> C'est-à-dire : Set MonObjet = Nothing.
>
> C'est la règle.
> A suivre.
>
> "domi" a écrit :
>
> > bonjour a tous
> >
> > ce code me serts pour copier le contenu d'un champ ole
> > dans un repertoire en format WORD
> > tout se passe bien j'ai bien mon fichier WORD
> > mais apres avoir exécute l'action
> > Dand le gestionnaire des taches dans onglet Applications
> > Microsoft Word ne s'y trouve pas
> > mais dans l'onglet Processus WINWORD.EXE
> > lui est encore présent
> > que faire avec ce code pour empecher cela?
> >
> >
> > ---------------------------------code a modifier
> > Private Sub Commande67_Click()
> > aa.Object.Application.Options.BackgroundSave = True
> > aa.Object.Application.Options.AllowFastSave = True
> > aa.Object.SaveAs "C:PDFTEMP.doc"
> > end sub
> > ----------------------------------------------------
> >
> >
> >




Avatar
Jean-Marc
"YannX" a écrit dans le message de
news:%
Bnjr,

[HS = idée dérivée de ce fil ]
Y a-t-il une solution efficace pour fermer
automatiquement une application dérivée
(typiquement Excel ou Word), lancée
à partir de VB-IDE, qd on ferme l'interpretation du pgm !

Evidement le programme utilisateur s'était planté........
Donc pour revenir a une situation propre....



Hello,

Le programme utilisateur ne **doit** PAS se planter. Si il rencontre
une erreur, ce qui est possible, le programme doit dans tous les cas
récupérer l'erreur proprement, et remonter les appels. Même une erreur
non prévue doit être récupérée, faire l'objet d'un message adéquat,
genre: Erreur inattendue (err N°: X) rencontrée dans le Module
"Nom_du_module", Fonction "Nom_de_la_fonction".

Si la nature de l'erreur est telle qu'elle nécessite un arrêt du
programme, cet arrêt doit toujours se faire de manière contrôlée,
justement pour gérer ce genre de cas. On prévoit alors une procédure
dite "Disaster recovery" qui se charge de ce genre de choses.

Ca suppose évidemment d'avoir fait les choses proprement, c'est à dire
de garder quelque part en mémoire ou sur disque l'état des choses qu'on
a lancé/ouvert/alloué pour permettre le cas échéant de retrouver ses
petits et de faire le ménage le plus proprement possible. Ca ne résoud
peut être pas tout (genre une panne hardware) mais ça évite quand même
plein d'ennuis.

Tout cela s'applique aussi bien pour un programme en cours de
developpement, donc s'exécutant depuis l'IDE que pour un programme
terminé, qui s'exécute tout seul, hors de l'IDE. Ceci expliquant
pourquoi le code doit inclure même dans une phase très précoce tout ce
qu'il faut pour la gestion propre (et si possible centralisée) des
erreurs.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
domi
c'est bien beau tout ça

mais la solution au probleme c'est quoi??????


"Jean-Marc" a écrit dans le message de news:
41a9d2dc$0$5387$
"YannX" a écrit dans le message de
news:%
> Bnjr,
>
> [HS = idée dérivée de ce fil ]
> Y a-t-il une solution efficace pour fermer
> automatiquement une application dérivée
> (typiquement Excel ou Word), lancée
> à partir de VB-IDE, qd on ferme l'interpretation du pgm !
>
> Evidement le programme utilisateur s'était planté........
> Donc pour revenir a une situation propre....

Hello,

Le programme utilisateur ne **doit** PAS se planter. Si il rencontre
une erreur, ce qui est possible, le programme doit dans tous les cas
récupérer l'erreur proprement, et remonter les appels. Même une erreur
non prévue doit être récupérée, faire l'objet d'un message adéquat,
genre: Erreur inattendue (err N°: X) rencontrée dans le Module
"Nom_du_module", Fonction "Nom_de_la_fonction".

Si la nature de l'erreur est telle qu'elle nécessite un arrêt du
programme, cet arrêt doit toujours se faire de manière contrôlée,
justement pour gérer ce genre de cas. On prévoit alors une procédure
dite "Disaster recovery" qui se charge de ce genre de choses.

Ca suppose évidemment d'avoir fait les choses proprement, c'est à dire
de garder quelque part en mémoire ou sur disque l'état des choses qu'on
a lancé/ouvert/alloué pour permettre le cas échéant de retrouver ses
petits et de faire le ménage le plus proprement possible. Ca ne résoud
peut être pas tout (genre une panne hardware) mais ça évite quand même
plein d'ennuis.

Tout cela s'applique aussi bien pour un programme en cours de
developpement, donc s'exécutant depuis l'IDE que pour un programme
terminé, qui s'exécute tout seul, hors de l'IDE. Ceci expliquant
pourquoi le code doit inclure même dans une phase très précoce tout ce
qu'il faut pour la gestion propre (et si possible centralisée) des
erreurs.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."




Avatar
YannX
Merci pour le rappel,
mais de facon opérationnelle ?

(voir ci-dessous)
Y
"Jean-Marc" a écrit dans le message de
news:41a9d2dc$0$5387$
"YannX" a écrit dans le message de
news:%
> Bnjr,
>
> [HS = idée dérivée de ce fil ]
> Y a-t-il une solution efficace pour fermer
> automatiquement une application dérivée
> (typiquement Excel ou Word), lancée
> à partir de VB-IDE, qd on ferme l'interpretation du pgm !
>
> Evidement le programme utilisateur s'était planté........
> Donc pour revenir a une situation propre....

Hello,

Le programme utilisateur ne **doit** PAS se planter. Si il rencontre


..........Vrai, mais nous savons que c'est faux .... ;-)

récupérer l'erreur proprement, et remonter les appels. Même une erreur


C++ propose depuis longtemps un mécanisme
try .......catch des exceptions typées !
Comment le faire en Basic

Tout cela s'applique aussi bien pour un programme en cours de
developpement, donc s'exécutant depuis l'IDE que pour un programme
terminé, qui s'exécute tout seul, hors de l'IDE. .....


Mais quand je suis en train de tester, et de corriger
(sans réflechir, diraient les anciens de la comilation a cartes
perforées)
J'ai pas envie de perdre mon temps a verifier ma barre de taches..

Voila pourquoi, je ne sais pas, peut-etre qu'un simple
App_X.Quit
Set App_X = Nothing dans le Form_close principal
serait-il exécuté après plantage du programme dans l'IDE
lorsque je referme l'exécution ?

pourquoi le code doit inclure même dans une phase très précoce tout ce
qu'il faut pour la gestion propre (et si possible centralisée) des


erreurs.

Des préconisations pour le centraliser (plus que le MsgBox de rigueur...) ?

Y
1 2