Je voudrais créer le journal d'exploitation d'une grosse appli dont les auteurs
et le contrôle ont été perdus, et dont je récupère la maintenance.
Afin de savoir un peu ce qui s'y passe, j'ai dans un premier temps ajouté sur
tous les écrans les noms des formulaires et sous-f. Je souhaite maintenant créer
une trace des modules VB exécutés par les différents formulaires.
Etant débutant sur la programmation ACCESS/VB, je suis donc allé à la FNAC et
j'ai acquis le John Viescas (Access 2002 au quotidien), le Greg Perry (VB 6 en
21 jours et un divorce) et *le* F. Scott Barker (programmation Access).
Ebé, je n'y ai trouvé que la possibilité d'écrire des messages d'erreur dans une
table via un error handler (bon, d'accord, je n'ai pas tout lu mais presque :-)
Ce que je voudrais, c'est avoir dans un fichier (avec DoCmd.OutputTo par
exemple) l'état suivant :
type nom routine date/heure
----------+------------+------------------------+--------------------
Formulaire ListeClients Private Sub Form_Load() 31-jan-2004 11:30:01
Formulaire ListeClients Private Sub faitmoiça() 31-jan-2004 11:30:02
Formulaire ListeClients Private Sub Form_Close() 31-jan-2004 11:32:00
etc.
En DCL, le langage de script de VMS, j'aurais fait un truc comme ça :
1. ouvrir un fichier texte au début de l'appli
2. inclure (automatiquement) dans tous les scripts la ligne
$ write FichierLog "Entrée dans ",f$environnement(procedure)," le ", f$time()
3. fermer le fichier en sortie de procédure
f$environnement(procedure) me donne le nom complet du script et son emplacement
f$time() me donne l'quivalent de "Now".
Qu'en pensez-vous ?
Merci.
D.
--
VAXUS - Your new helpful friend in the DEC Family!
EHQ: 19 chemin de la Butte, 31400 Toulouse, France
Phone: +336 7983 6418 Fax: +335 6154 1928
http://www.vaxus.org
avant de partir dans tous les sens et vouloir tout traiter tout de suite , il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées sur la page : http://access.seneque.free.fr/journal_surveillance.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" a écrit dans le message de news:bvg15a$2nld$
Bonjour à tous et bonne année,
Je voudrais créer le journal d'exploitation d'une grosse appli dont les auteurs
et le contrôle ont été perdus, et dont je récupère la maintenance.
Afin de savoir un peu ce qui s'y passe, j'ai dans un premier temps ajouté sur
tous les écrans les noms des formulaires et sous-f. Je souhaite maintenant créer
une trace des modules VB exécutés par les différents formulaires.
Etant débutant sur la programmation ACCESS/VB, je suis donc allé à la FNAC et
j'ai acquis le John Viescas (Access 2002 au quotidien), le Greg Perry (VB 6 en
21 jours et un divorce) et *le* F. Scott Barker (programmation Access).
Ebé, je n'y ai trouvé que la possibilité d'écrire des messages d'erreur dans une
table via un error handler (bon, d'accord, je n'ai pas tout lu mais presque :-)
Ce que je voudrais, c'est avoir dans un fichier (avec DoCmd.OutputTo par exemple) l'état suivant :
type nom routine date/heure ----------+------------+------------------------+-------------------- Formulaire ListeClients Private Sub Form_Load() 31-jan-2004 11:30:01 Formulaire ListeClients Private Sub faitmoiça() 31-jan-2004 11:30:02 Formulaire ListeClients Private Sub Form_Close() 31-jan-2004 11:32:00 etc.
En DCL, le langage de script de VMS, j'aurais fait un truc comme ça :
1. ouvrir un fichier texte au début de l'appli 2. inclure (automatiquement) dans tous les scripts la ligne $ write FichierLog "Entrée dans ",f$environnement(procedure)," le ", f$time()
3. fermer le fichier en sortie de procédure
f$environnement(procedure) me donne le nom complet du script et son emplacement
f$time() me donne l'quivalent de "Now".
Qu'en pensez-vous ? Merci.
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite ,
il serait préférable de passer quelques temps à savoir quels formulaires
sont utilisés et par qui, combien de fois et combien de temps. ensuite à
l'analyse de ces données tu pourras classer tes priporités et faire un
journal par formulaire. pour faire un journal global tu trouveras des idées
sur la page : http://access.seneque.free.fr/journal_surveillance.htm
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" <no@spam.com> a écrit dans le message de
news:bvg15a$2nld$1@biggoron.nerim.net...
Bonjour à tous et bonne année,
Je voudrais créer le journal d'exploitation d'une grosse appli dont les
auteurs
et le contrôle ont été perdus, et dont je récupère la maintenance.
Afin de savoir un peu ce qui s'y passe, j'ai dans un premier temps ajouté
sur
tous les écrans les noms des formulaires et sous-f. Je souhaite maintenant
créer
une trace des modules VB exécutés par les différents formulaires.
Etant débutant sur la programmation ACCESS/VB, je suis donc allé à la FNAC
et
j'ai acquis le John Viescas (Access 2002 au quotidien), le Greg Perry (VB
6 en
21 jours et un divorce) et *le* F. Scott Barker (programmation Access).
Ebé, je n'y ai trouvé que la possibilité d'écrire des messages d'erreur
dans une
table via un error handler (bon, d'accord, je n'ai pas tout lu mais
presque :-)
Ce que je voudrais, c'est avoir dans un fichier (avec DoCmd.OutputTo par
exemple) l'état suivant :
type nom routine date/heure
----------+------------+------------------------+--------------------
Formulaire ListeClients Private Sub Form_Load() 31-jan-2004 11:30:01
Formulaire ListeClients Private Sub faitmoiça() 31-jan-2004 11:30:02
Formulaire ListeClients Private Sub Form_Close() 31-jan-2004 11:32:00
etc.
En DCL, le langage de script de VMS, j'aurais fait un truc comme ça :
1. ouvrir un fichier texte au début de l'appli
2. inclure (automatiquement) dans tous les scripts la ligne
$ write FichierLog "Entrée dans ",f$environnement(procedure)," le ",
f$time()
3. fermer le fichier en sortie de procédure
f$environnement(procedure) me donne le nom complet du script et son
emplacement
f$time() me donne l'quivalent de "Now".
Qu'en pensez-vous ?
Merci.
D.
--
VAXUS - Your new helpful friend in the DEC Family!
EHQ: 19 chemin de la Butte, 31400 Toulouse, France
Phone: +336 7983 6418 Fax: +335 6154 1928
http://www.vaxus.org
avant de partir dans tous les sens et vouloir tout traiter tout de suite , il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées sur la page : http://access.seneque.free.fr/journal_surveillance.htm
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" a écrit dans le message de news:bvg15a$2nld$
Bonjour à tous et bonne année,
Je voudrais créer le journal d'exploitation d'une grosse appli dont les auteurs
et le contrôle ont été perdus, et dont je récupère la maintenance.
Afin de savoir un peu ce qui s'y passe, j'ai dans un premier temps ajouté sur
tous les écrans les noms des formulaires et sous-f. Je souhaite maintenant créer
une trace des modules VB exécutés par les différents formulaires.
Etant débutant sur la programmation ACCESS/VB, je suis donc allé à la FNAC et
j'ai acquis le John Viescas (Access 2002 au quotidien), le Greg Perry (VB 6 en
21 jours et un divorce) et *le* F. Scott Barker (programmation Access).
Ebé, je n'y ai trouvé que la possibilité d'écrire des messages d'erreur dans une
table via un error handler (bon, d'accord, je n'ai pas tout lu mais presque :-)
Ce que je voudrais, c'est avoir dans un fichier (avec DoCmd.OutputTo par exemple) l'état suivant :
type nom routine date/heure ----------+------------+------------------------+-------------------- Formulaire ListeClients Private Sub Form_Load() 31-jan-2004 11:30:01 Formulaire ListeClients Private Sub faitmoiça() 31-jan-2004 11:30:02 Formulaire ListeClients Private Sub Form_Close() 31-jan-2004 11:32:00 etc.
En DCL, le langage de script de VMS, j'aurais fait un truc comme ça :
1. ouvrir un fichier texte au début de l'appli 2. inclure (automatiquement) dans tous les scripts la ligne $ write FichierLog "Entrée dans ",f$environnement(procedure)," le ", f$time()
3. fermer le fichier en sortie de procédure
f$environnement(procedure) me donne le nom complet du script et son emplacement
f$time() me donne l'quivalent de "Now".
Qu'en pensez-vous ? Merci.
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
Didier Morandi
Raymond [mvp] wrote:
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite , il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve quand je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne :-) je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus "tous les formulaires sont utilisés et par tout le monde" et je saurai "combien de fois et combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône. 1950 : Clinique du Parc (areuh) 1960 : Lycée du Parc 1968 : Cours Maisonneuve 1969 : Cours Pascal
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
Raymond [mvp] wrote:
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite ,
il serait préférable de passer quelques temps à savoir quels formulaires
sont utilisés et par qui, combien de fois et combien de temps. ensuite à
l'analyse de ces données tu pourras classer tes priporités et faire un
journal par formulaire. pour faire un journal global tu trouveras des idées
sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve quand
je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne :-)
je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus "tous les
formulaires sont utilisés et par tout le monde" et je saurai "combien de fois et
combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône.
1950 : Clinique du Parc (areuh)
1960 : Lycée du Parc
1968 : Cours Maisonneuve
1969 : Cours Pascal
D.
--
VAXUS - Your new helpful friend in the DEC Family!
EHQ: 19 chemin de la Butte, 31400 Toulouse, France
Phone: +336 7983 6418 Fax: +335 6154 1928
http://www.vaxus.org
avant de partir dans tous les sens et vouloir tout traiter tout de suite , il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve quand je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne :-) je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus "tous les formulaires sont utilisés et par tout le monde" et je saurai "combien de fois et combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône. 1950 : Clinique du Parc (areuh) 1960 : Lycée du Parc 1968 : Cours Maisonneuve 1969 : Cours Pascal
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
Raymond [mvp]
bonjour mon gone et cadet.
Alt+F11 menu outils / références cocher la ligne microsoft DAO3.6 object library
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" a écrit dans le message de news:bvgko8$n8$
Raymond [mvp] wrote:
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite ,
il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées
sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve quand
je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne :-)
je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus "tous les
formulaires sont utilisés et par tout le monde" et je saurai "combien de fois et
combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône. 1950 : Clinique du Parc (areuh) 1960 : Lycée du Parc 1968 : Cours Maisonneuve 1969 : Cours Pascal
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
bonjour mon gone et cadet.
Alt+F11
menu outils / références
cocher la ligne microsoft DAO3.6 object library
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" <no@spam.com> a écrit dans le message de
news:bvgko8$n8$1@biggoron.nerim.net...
Raymond [mvp] wrote:
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite
,
il serait préférable de passer quelques temps à savoir quels formulaires
sont utilisés et par qui, combien de fois et combien de temps. ensuite à
l'analyse de ces données tu pourras classer tes priporités et faire un
journal par formulaire. pour faire un journal global tu trouveras des
idées
sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve
quand
je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne
:-)
je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus
"tous les
formulaires sont utilisés et par tout le monde" et je saurai "combien de
fois et
combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône.
1950 : Clinique du Parc (areuh)
1960 : Lycée du Parc
1968 : Cours Maisonneuve
1969 : Cours Pascal
D.
--
VAXUS - Your new helpful friend in the DEC Family!
EHQ: 19 chemin de la Butte, 31400 Toulouse, France
Phone: +336 7983 6418 Fax: +335 6154 1928
http://www.vaxus.org
Alt+F11 menu outils / références cocher la ligne microsoft DAO3.6 object library
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Didier Morandi" a écrit dans le message de news:bvgko8$n8$
Raymond [mvp] wrote:
bonjour.
avant de partir dans tous les sens et vouloir tout traiter tout de suite ,
il serait préférable de passer quelques temps à savoir quels formulaires sont utilisés et par qui, combien de fois et combien de temps. ensuite à l'analyse de ces données tu pourras classer tes priporités et faire un journal par formulaire. pour faire un journal global tu trouveras des idées
sur la page : http://access.seneque.free.fr/journal_surveillance.htm
Raymond Sénèque, mon Serviteur, étant moi aussi lyonnais (et je le prouve quand
je vais faire une babasse dans un cani après avoir bu un Belu à la Gadagne :-)
je te réponds franchement :
Je ne "pars pas dans tous les sens", j'utilise mes méthodes... De plus "tous les
formulaires sont utilisés et par tout le monde" et je saurai "combien de fois et
combien de temps" précisément avec cette routine.
Au fait, le lien indiqué dit le quoi mais pas le comment. Par exemple:
référencer la librairie DAO3.6
tu fais ça comment ? Et qu'est-ce que c'est que la librairie DA03.6 ?
Merci pour tout.
Le gône. 1950 : Clinique du Parc (areuh) 1960 : Lycée du Parc 1968 : Cours Maisonneuve 1969 : Cours Pascal
D. -- VAXUS - Your new helpful friend in the DEC Family! EHQ: 19 chemin de la Butte, 31400 Toulouse, France Phone: +336 7983 6418 Fax: +335 6154 1928 http://www.vaxus.org
Maxence HUBICHE
Bonjour Didier !
Je trouve ton idée très sympa... Va falloir que je médite là-dessus ... mais à priori, je me lancerai sur un truc du genre :
-Création d'un module de classe (clsScann) -Création d'un module standard (modScann)
=-=-=-=-=-Tout ce qui suit est dans un module standard (modScann) Public MyScann as New clsScann
=-=-=-=-=-Tout ce qui suit est dans un module de classe (clsScann) -Une variable publique intFile as Long -Une Procédure publique Ecrire Public Function Ecrire(Optional sTypeObj as string="", Optional sNomObjet as string="",Optional sNomProc as string="") as boolean On error Goto GestErr Dim sMSG as String sMSG=sTypeObj & vbtab & sNomObjet & vbtab & sNomProc & vbTab & Format(Now(),"yyyymmddhhnnss") & vbtab & CurrentUser() Print #intFile, sMSG Ecrire=True exit Function GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture" Ecrireúlse End function
-Une procédure à écrire dans le Class_Initialize On error Goto GestErr intFile=FreeFile Open "monserveurmonpathlog.txt" for output as #intFile Print #intFile, " type" & vbtab & " nom" & vbtab & " routine" & vbtab & "date/heure" & vbtab & "Utilisateur" Exit Sub GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture"
-et enfin, dans le Class_Terminate : On error Goto GestErr Print #intFile, "Fin du scann" FinProg: Close #intFile Exit Sub GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture" Resume FinProg
=-=-=-=-=-Comment l'utiliser ? A partir de là, il devrait te suffire d'écrire : MyScann.Ecrire "Formulaire","frmMenu","Form_Load()" (par exemple) pour que ta ligne s'écrive dans le fichier. Bon, soyons clairs : j'ai pondu ce code au fur et à mesure que je te faisais le post, alors ne m'en veut pas trop s'il y a des erreurs. Je ne me suis pas relu. J'ai juste voulu te donner une idée. Une orientation :)
A plus !
Maxence
Bonjour Didier !
Je trouve ton idée très sympa...
Va falloir que je médite là-dessus ...
mais à priori, je me lancerai sur un truc du genre :
-Création d'un module de classe (clsScann)
-Création d'un module standard (modScann)
=-=-=-=-=-Tout ce qui suit est dans un module standard (modScann)
Public MyScann as New clsScann
=-=-=-=-=-Tout ce qui suit est dans un module de classe (clsScann)
-Une variable publique intFile as Long
-Une Procédure publique Ecrire
Public Function Ecrire(Optional sTypeObj as string="", Optional sNomObjet as
string="",Optional sNomProc as string="") as boolean
On error Goto GestErr
Dim sMSG as String
sMSG=sTypeObj & vbtab & sNomObjet & vbtab & sNomProc & vbTab &
Format(Now(),"yyyymmddhhnnss") & vbtab & CurrentUser()
Print #intFile, sMSG
Ecrire=True
exit Function
GestErr:
Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture"
Ecrireúlse
End function
-Une procédure à écrire dans le Class_Initialize
On error Goto GestErr
intFile=FreeFile
Open "\monserveurmonpathlog.txt" for output as #intFile
Print #intFile, " type" & vbtab & " nom" & vbtab & " routine" & vbtab
& "date/heure" & vbtab & "Utilisateur"
Exit Sub
GestErr:
Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture"
-et enfin, dans le Class_Terminate :
On error Goto GestErr
Print #intFile, "Fin du scann"
FinProg:
Close #intFile
Exit Sub
GestErr:
Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture"
Resume FinProg
=-=-=-=-=-Comment l'utiliser ?
A partir de là, il devrait te suffire d'écrire :
MyScann.Ecrire "Formulaire","frmMenu","Form_Load()"
(par exemple) pour que ta ligne s'écrive dans le fichier.
Bon, soyons clairs : j'ai pondu ce code au fur et à mesure que je te faisais
le post, alors ne m'en veut pas trop s'il y a des erreurs. Je ne me suis pas
relu. J'ai juste voulu te donner une idée. Une orientation :)
Je trouve ton idée très sympa... Va falloir que je médite là-dessus ... mais à priori, je me lancerai sur un truc du genre :
-Création d'un module de classe (clsScann) -Création d'un module standard (modScann)
=-=-=-=-=-Tout ce qui suit est dans un module standard (modScann) Public MyScann as New clsScann
=-=-=-=-=-Tout ce qui suit est dans un module de classe (clsScann) -Une variable publique intFile as Long -Une Procédure publique Ecrire Public Function Ecrire(Optional sTypeObj as string="", Optional sNomObjet as string="",Optional sNomProc as string="") as boolean On error Goto GestErr Dim sMSG as String sMSG=sTypeObj & vbtab & sNomObjet & vbtab & sNomProc & vbTab & Format(Now(),"yyyymmddhhnnss") & vbtab & CurrentUser() Print #intFile, sMSG Ecrire=True exit Function GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture" Ecrireúlse End function
-Une procédure à écrire dans le Class_Initialize On error Goto GestErr intFile=FreeFile Open "monserveurmonpathlog.txt" for output as #intFile Print #intFile, " type" & vbtab & " nom" & vbtab & " routine" & vbtab & "date/heure" & vbtab & "Utilisateur" Exit Sub GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture"
-et enfin, dans le Class_Terminate : On error Goto GestErr Print #intFile, "Fin du scann" FinProg: Close #intFile Exit Sub GestErr: Msgbox err.description,vbcritical,"erreur inattendue lors de l'écriture" Resume FinProg
=-=-=-=-=-Comment l'utiliser ? A partir de là, il devrait te suffire d'écrire : MyScann.Ecrire "Formulaire","frmMenu","Form_Load()" (par exemple) pour que ta ligne s'écrive dans le fichier. Bon, soyons clairs : j'ai pondu ce code au fur et à mesure que je te faisais le post, alors ne m'en veut pas trop s'il y a des erreurs. Je ne me suis pas relu. J'ai juste voulu te donner une idée. Une orientation :)
A plus !
Maxence
Didier Morandi
Jockey.
Y'a toujours des saucissons briochés chez Chorliet ?
D.
Raymond [mvp] wrote:
bonjour mon gone et cadet.
Alt+F11 menu outils / références cocher la ligne microsoft DAO3.6 object library
Jockey.
Y'a toujours des saucissons briochés chez Chorliet ?
D.
Raymond [mvp] wrote:
bonjour mon gone et cadet.
Alt+F11
menu outils / références
cocher la ligne microsoft DAO3.6 object library
Date Code Libelle Utilisation -------------------+----+-------+------------------------ 01/02/2004 09:22:38 Form (rien) Ouverture 01/02/2004 09:22:47 Form (rien) Fermeture 01/02/2004 09:22:50 Form (rien) Ouverture 01/02/2004 09:22:59 Form (rien) Fermeture 01/02/2004 09:26:51 Form (rien) Ouverture 01/02/2004 09:26:51 Form (rien) Démarrage 01/02/2004 09:26:58 Form (rien) Gestion de chantiers 01/02/2004 09:26:59 Form (rien) Gestion des clients 01/02/2004 09:27:01 Form (rien) Fiche client ../..
Bon, voici qq résultats.
1. ca marche 2. il n'y a rien dans Libellé (champ Me.Name) 3. il n'y a que des "Form" même si je passe dans autre chose ? 4. la fenêtre de surveillance apparaît minimisée en bas et à gauche de l'écran, j'aimerais la cacher. 5. comment avoir aussi le nom des procédures exécutées dans chaque formulaire ? Je suppose que je dois ajouter un bout de code dans chaque, pour mettre la table à jour, exact ?
Merci bcp. Je promets de rédiger un HowTo sur la journalisation de l'exploitation sous Access quand j'aurai fini.
Date Code Libelle Utilisation
-------------------+----+-------+------------------------
01/02/2004 09:22:38 Form (rien) Ouverture
01/02/2004 09:22:47 Form (rien) Fermeture
01/02/2004 09:22:50 Form (rien) Ouverture
01/02/2004 09:22:59 Form (rien) Fermeture
01/02/2004 09:26:51 Form (rien) Ouverture
01/02/2004 09:26:51 Form (rien) Démarrage
01/02/2004 09:26:58 Form (rien) Gestion de chantiers
01/02/2004 09:26:59 Form (rien) Gestion des clients
01/02/2004 09:27:01 Form (rien) Fiche client
../..
Bon, voici qq résultats.
1. ca marche
2. il n'y a rien dans Libellé (champ Me.Name)
3. il n'y a que des "Form" même si je passe dans autre chose ?
4. la fenêtre de surveillance apparaît minimisée en bas et à gauche de l'écran,
j'aimerais la cacher.
5. comment avoir aussi le nom des procédures exécutées dans chaque formulaire ?
Je suppose que je dois ajouter un bout de code dans chaque, pour mettre la table
à jour, exact ?
Merci bcp.
Je promets de rédiger un HowTo sur la journalisation de l'exploitation sous
Access quand j'aurai fini.
Date Code Libelle Utilisation -------------------+----+-------+------------------------ 01/02/2004 09:22:38 Form (rien) Ouverture 01/02/2004 09:22:47 Form (rien) Fermeture 01/02/2004 09:22:50 Form (rien) Ouverture 01/02/2004 09:22:59 Form (rien) Fermeture 01/02/2004 09:26:51 Form (rien) Ouverture 01/02/2004 09:26:51 Form (rien) Démarrage 01/02/2004 09:26:58 Form (rien) Gestion de chantiers 01/02/2004 09:26:59 Form (rien) Gestion des clients 01/02/2004 09:27:01 Form (rien) Fiche client ../..
Bon, voici qq résultats.
1. ca marche 2. il n'y a rien dans Libellé (champ Me.Name) 3. il n'y a que des "Form" même si je passe dans autre chose ? 4. la fenêtre de surveillance apparaît minimisée en bas et à gauche de l'écran, j'aimerais la cacher. 5. comment avoir aussi le nom des procédures exécutées dans chaque formulaire ? Je suppose que je dois ajouter un bout de code dans chaque, pour mettre la table à jour, exact ?
Merci bcp. Je promets de rédiger un HowTo sur la journalisation de l'exploitation sous Access quand j'aurai fini.
D.
Didier Morandi
Didier Morandi wrote:
Raymond [mvp] wrote:
http://access.seneque.free.fr/journal_surveillance.htm créer une table cachée (ou non) nommée "_Surveillance" avec ou sans clé primaire,
Pas trouvé "table cachée" dans la doc ni dans l'aide on line, mon Poteau.
Outils -> Options -> Affichage -> masqué.
Merci.
De rien.
:-)
D.
Didier Morandi wrote:
Raymond [mvp] wrote:
http://access.seneque.free.fr/journal_surveillance.htm
créer une table cachée (ou non) nommée "_Surveillance" avec ou sans
clé primaire,
Pas trouvé "table cachée" dans la doc ni dans l'aide on line, mon Poteau.
http://access.seneque.free.fr/journal_surveillance.htm créer une table cachée (ou non) nommée "_Surveillance" avec ou sans clé primaire,
Pas trouvé "table cachée" dans la doc ni dans l'aide on line, mon Poteau.
Outils -> Options -> Affichage -> masqué.
Merci.
De rien.
:-)
D.
Maxence HUBICHE
Bon, j'ai un peu modifié, et testé,et ça marche. Crée 2 modules : 1 module de classe et 1 module standard Le module standard s'appellera modScann Le module de classe s'appellera clsScann
Ce code est commenté. Si tu veux utiliser ce code, il te suffira d'apeler la fonction Ecrire en lui passantles informations attendues. - un exemple (VBA) : Ecrire "Formulaire", "Formulaire1", "Sur Activation" - un exemple (Expression) : ìrire("Formulaire";"Formulaire1";"Sur Activation")
Maintenant, c'est à toi de jouer. N'oublies pas que la touche F1 sur un mot que tu ne comprends pas est plus qu'utile :)
A bientôt !
===================ÞBUT - COPIER dans modScann ============ Option Explicit Option Compare Database 'Déclaration d'une variable publique pointant sur une nouvelle (New) instance de la classe ('modèle d'objet') clsScann 'Comme cette déclaration est publique ET dans un module standard, la variable est sensée être disponible en permanence, 'depuis le départ de l'application jusqu'à sa terminaison. Public MyScann As New clsScann
Public Function Ecrire(Optional sTypeObj As String = "", _ Optional sNomObjet As String = "", _ Optional sNomProc As String = "") As Boolean 'Procédure publique. 'Tu pourras l'utiliser partout (dans les procédure évènementielles, ' dans les macros, ...)
MyScann.Ecrire sTypeObj, sNomObjet, sNomProc End Function ====================FIN- COPIER dans modScann ============== ===================ÞBUT - COPIER dans clsScann ============ Option Compare Database Option Explicit 'Déclaration d'une variable privée permettant d'identifier le fichier texte par un N° 'Ce n° sera utlisé à chaque fois que nécessaire lors du programme (ouverture/écriture/fermeture) Private intFile As Long
Public Function Ecrire(Optional sTypeObj As String = "", _ Optional sNomObjet As String = "", _ Optional sNomProc As String = "") As Boolean 'Cette procédure a pour objectif d'écrire une ligne dans le fichier. 'Les informations variables peuvent être passées en argument : ' sTypeObjet => type d'objet. Lors de l'usage, écrire "Formulaire" ou "Etat" suivant le cas ' sNomObjet => Nom de l'objet. Lors de l'usage écrire entre guillemets le nom du formulaire ou de l'état ' sNomProc => Nom de la procédure. Lors de l'usage, écrire entre guillemets, le nom de la procédure
'Déclaration de la gestion des erreurs On Error GoTo GestErr 'Déclaration d'une variable utilisée uniquement dans cette procédure 'Elle sert à recenser les informations à écrire sur une ligne. Dim sMSG As String 'Fabrication de la ligne à écrire avec les informations passées en paramètre, la date/heure et l'utilisateur 'Le séparateur et TABULATION sMSG = sTypeObj & vbTab & sNomObjet & vbTab & sNomProc & vbTab & _ Format(Now(), "yyyymmddhhnnss") & vbTab & CurrentUser() 'Ecriture dans le fichier de la ligne Print #intFile, sMSG Ecrire = True 'Fin de la fonction si tout s'est bien passé Exit Function GestErr: 'En cas d'erreur, afficher le message d'erreur MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" Ecrire = False End Function
Private Sub Class_Initialize() 'Déclaration du Gestionnaire d'erreur On Error GoTo GestErr 'Définition d'un n° pour le fichier, en prenant le premier n° 'Séquentiel non utilisé intFile = FreeFile 'Ouverture du fichier. Open "c:log_" & Format(Now, "yyyymmddhhnnss") & ".txt" For Output As #intFile 'Inscription de l'entête du fichier Print #intFile, " type" & vbTab & " nom" & vbTab & " routine" & _ vbTab & "date/heure" & vbTab & "Utilisateur" Exit Sub GestErr: 'En cas d'erreur, afficher le message MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" End Sub
Private Sub Class_Terminate() 'Déclaration du Gestionnaire d'erreur On Error GoTo GestErr 'Ecriture de la fin du scann Print #intFile, "Fin du scann à " & Now() FinProg: 'Fermeture systématique du fichier Close #intFile Exit Sub GestErr: 'En cas d'erreur, afficher le message MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" Resume FinProg End Sub ====================FIN- COPIER dans clsScann ================
Bon, j'ai un peu modifié, et testé,et ça marche.
Crée 2 modules :
1 module de classe et 1 module standard
Le module standard s'appellera modScann
Le module de classe s'appellera clsScann
Ce code est commenté.
Si tu veux utiliser ce code, il te suffira d'apeler la fonction Ecrire en
lui passantles informations attendues.
- un exemple (VBA) :
Ecrire "Formulaire", "Formulaire1", "Sur Activation"
- un exemple (Expression) :
ìrire("Formulaire";"Formulaire1";"Sur Activation")
Maintenant, c'est à toi de jouer.
N'oublies pas que la touche F1 sur un mot que tu ne comprends pas est plus
qu'utile :)
A bientôt !
===================ÞBUT - COPIER dans modScann ============ Option Explicit
Option Compare Database
'Déclaration d'une variable publique pointant sur une nouvelle (New)
instance de la classe ('modèle d'objet') clsScann
'Comme cette déclaration est publique ET dans un module standard, la
variable est sensée être disponible en permanence,
'depuis le départ de l'application jusqu'à sa terminaison.
Public MyScann As New clsScann
Public Function Ecrire(Optional sTypeObj As String = "", _
Optional sNomObjet As String = "", _
Optional sNomProc As String = "") As Boolean
'Procédure publique.
'Tu pourras l'utiliser partout (dans les procédure évènementielles,
' dans les macros, ...)
MyScann.Ecrire sTypeObj, sNomObjet, sNomProc
End Function
====================FIN- COPIER dans modScann ============== ===================ÞBUT - COPIER dans clsScann ============ Option Compare Database
Option Explicit
'Déclaration d'une variable privée permettant d'identifier le fichier texte
par un N°
'Ce n° sera utlisé à chaque fois que nécessaire lors du programme
(ouverture/écriture/fermeture)
Private intFile As Long
Public Function Ecrire(Optional sTypeObj As String = "", _
Optional sNomObjet As String = "", _
Optional sNomProc As String = "") As Boolean
'Cette procédure a pour objectif d'écrire une ligne dans le fichier.
'Les informations variables peuvent être passées en argument :
' sTypeObjet => type d'objet. Lors de l'usage, écrire "Formulaire" ou
"Etat" suivant le cas
' sNomObjet => Nom de l'objet. Lors de l'usage écrire entre guillemets le
nom du formulaire ou de l'état
' sNomProc => Nom de la procédure. Lors de l'usage, écrire entre
guillemets, le nom de la procédure
'Déclaration de la gestion des erreurs
On Error GoTo GestErr
'Déclaration d'une variable utilisée uniquement dans cette procédure
'Elle sert à recenser les informations à écrire sur une ligne.
Dim sMSG As String
'Fabrication de la ligne à écrire avec les informations passées en
paramètre, la date/heure et l'utilisateur
'Le séparateur et TABULATION
sMSG = sTypeObj & vbTab & sNomObjet & vbTab & sNomProc & vbTab & _
Format(Now(), "yyyymmddhhnnss") & vbTab & CurrentUser()
'Ecriture dans le fichier de la ligne
Print #intFile, sMSG
Ecrire = True
'Fin de la fonction si tout s'est bien passé
Exit Function
GestErr:
'En cas d'erreur, afficher le message d'erreur
MsgBox Err.Description, vbCritical, "erreur inattendue lors de
l'écriture"
Ecrire = False
End Function
Private Sub Class_Initialize()
'Déclaration du Gestionnaire d'erreur
On Error GoTo GestErr
'Définition d'un n° pour le fichier, en prenant le premier n°
'Séquentiel non utilisé
intFile = FreeFile
'Ouverture du fichier.
Open "c:log_" & Format(Now, "yyyymmddhhnnss") & ".txt" For Output As
#intFile
'Inscription de l'entête du fichier
Print #intFile, " type" & vbTab & " nom" & vbTab & " routine" & _
vbTab & "date/heure" & vbTab & "Utilisateur"
Exit Sub
GestErr:
'En cas d'erreur, afficher le message
MsgBox Err.Description, vbCritical, "erreur inattendue lors de
l'écriture"
End Sub
Private Sub Class_Terminate()
'Déclaration du Gestionnaire d'erreur
On Error GoTo GestErr
'Ecriture de la fin du scann
Print #intFile, "Fin du scann à " & Now()
FinProg:
'Fermeture systématique du fichier
Close #intFile
Exit Sub
GestErr:
'En cas d'erreur, afficher le message
MsgBox Err.Description, vbCritical, "erreur inattendue lors de
l'écriture"
Resume FinProg
End Sub
====================FIN- COPIER dans clsScann ================
Bon, j'ai un peu modifié, et testé,et ça marche. Crée 2 modules : 1 module de classe et 1 module standard Le module standard s'appellera modScann Le module de classe s'appellera clsScann
Ce code est commenté. Si tu veux utiliser ce code, il te suffira d'apeler la fonction Ecrire en lui passantles informations attendues. - un exemple (VBA) : Ecrire "Formulaire", "Formulaire1", "Sur Activation" - un exemple (Expression) : ìrire("Formulaire";"Formulaire1";"Sur Activation")
Maintenant, c'est à toi de jouer. N'oublies pas que la touche F1 sur un mot que tu ne comprends pas est plus qu'utile :)
A bientôt !
===================ÞBUT - COPIER dans modScann ============ Option Explicit Option Compare Database 'Déclaration d'une variable publique pointant sur une nouvelle (New) instance de la classe ('modèle d'objet') clsScann 'Comme cette déclaration est publique ET dans un module standard, la variable est sensée être disponible en permanence, 'depuis le départ de l'application jusqu'à sa terminaison. Public MyScann As New clsScann
Public Function Ecrire(Optional sTypeObj As String = "", _ Optional sNomObjet As String = "", _ Optional sNomProc As String = "") As Boolean 'Procédure publique. 'Tu pourras l'utiliser partout (dans les procédure évènementielles, ' dans les macros, ...)
MyScann.Ecrire sTypeObj, sNomObjet, sNomProc End Function ====================FIN- COPIER dans modScann ============== ===================ÞBUT - COPIER dans clsScann ============ Option Compare Database Option Explicit 'Déclaration d'une variable privée permettant d'identifier le fichier texte par un N° 'Ce n° sera utlisé à chaque fois que nécessaire lors du programme (ouverture/écriture/fermeture) Private intFile As Long
Public Function Ecrire(Optional sTypeObj As String = "", _ Optional sNomObjet As String = "", _ Optional sNomProc As String = "") As Boolean 'Cette procédure a pour objectif d'écrire une ligne dans le fichier. 'Les informations variables peuvent être passées en argument : ' sTypeObjet => type d'objet. Lors de l'usage, écrire "Formulaire" ou "Etat" suivant le cas ' sNomObjet => Nom de l'objet. Lors de l'usage écrire entre guillemets le nom du formulaire ou de l'état ' sNomProc => Nom de la procédure. Lors de l'usage, écrire entre guillemets, le nom de la procédure
'Déclaration de la gestion des erreurs On Error GoTo GestErr 'Déclaration d'une variable utilisée uniquement dans cette procédure 'Elle sert à recenser les informations à écrire sur une ligne. Dim sMSG As String 'Fabrication de la ligne à écrire avec les informations passées en paramètre, la date/heure et l'utilisateur 'Le séparateur et TABULATION sMSG = sTypeObj & vbTab & sNomObjet & vbTab & sNomProc & vbTab & _ Format(Now(), "yyyymmddhhnnss") & vbTab & CurrentUser() 'Ecriture dans le fichier de la ligne Print #intFile, sMSG Ecrire = True 'Fin de la fonction si tout s'est bien passé Exit Function GestErr: 'En cas d'erreur, afficher le message d'erreur MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" Ecrire = False End Function
Private Sub Class_Initialize() 'Déclaration du Gestionnaire d'erreur On Error GoTo GestErr 'Définition d'un n° pour le fichier, en prenant le premier n° 'Séquentiel non utilisé intFile = FreeFile 'Ouverture du fichier. Open "c:log_" & Format(Now, "yyyymmddhhnnss") & ".txt" For Output As #intFile 'Inscription de l'entête du fichier Print #intFile, " type" & vbTab & " nom" & vbTab & " routine" & _ vbTab & "date/heure" & vbTab & "Utilisateur" Exit Sub GestErr: 'En cas d'erreur, afficher le message MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" End Sub
Private Sub Class_Terminate() 'Déclaration du Gestionnaire d'erreur On Error GoTo GestErr 'Ecriture de la fin du scann Print #intFile, "Fin du scann à " & Now() FinProg: 'Fermeture systématique du fichier Close #intFile Exit Sub GestErr: 'En cas d'erreur, afficher le message MsgBox Err.Description, vbCritical, "erreur inattendue lors de l'écriture" Resume FinProg End Sub ====================FIN- COPIER dans clsScann ================