Comment créer un log qd utilisation de la base

freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011 - 23 févr. 2011 à 10:01
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 - 28 févr. 2011 à 14:11
Bonjour,

Je voudrais pouvoir creer un fichier log pour savoir qui s'est connecté à une base de donnée.

La base est interfacée avec une application VB6 qui lit les données de la base. j'arrive à savoir qui s'est connecté si la personne ouvre la base avec l'application ACCESS(utilisation d'une macro autoexe et executecode) mais cela ne marche pas lorsque qu'elle se connecte via l'application VB6. Voici le code de connexion à la base dans l'application VB6 :

With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BdApplication.Fichier & ";Persist Security Info=False" & ";Jet OLEDB:Database Password=" & BdApplication.Password
.RecordSource = BdApplication.TableToConnect
.Refresh
.Recordset.MoveFirst
End With

en espérant avoir été clair, si qq'un à une idée?

9 réponses

4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 13:49
Sur le site g trouver ça.

si c'est une macro
DoCmd.RunMacro "nommacro"

si c'est une procédure vba
MonAccess.Run "nomsub"

dans VB tu dois avoir une référence Access X object library

docmd est un objet access donc rien

Dim MonAccess as Access.application

pour une Macro MonAccess.DoCmd.RunMacro..../code

La discution original est a l'url suivant

http://www.developpez.net/forums/d1602/autres-langages/general-visual-basic-6-vbscript/vb-6-anterieur/vb6-executer-macro-access/

C cool cette idée, je ne m'était jamais posé la question si cela marche merci de me le dire.
0
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
23 févr. 2011 à 17:37
merci pour la réponse.
par contre c pas exactement ce que je souhaite faire.
Car créé un log d'accés à la base ACCESS a partir de l'application VB je le fait déja mais sans passer par une macro dans ACCESS-> j'écris dans un fichier texte à chaque ouverture de l'application car connexion automatique à la base.

en gros je voulais que ca soit l'appelé (la base) et non l'appelant (l'application VB) qui gére l'écriture du log. EN effet, cette base est susceptible d'etre connectée à une autre application dont je ne métriserai pas le code mais je souhaiterai tout de même connaitre l'historique des connexions.

ce que je ne comprends pas vraiment c'est que la connexion n'est pas équivalente à l'ouverture de la base et donc la macro autoexe ne se lance pas.

n'y a t'il pas possibilité de lancer du code à la connexion? ou une autre idée?
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
24 févr. 2011 à 10:43
Dans ce cas il faut lire le fichier .ldb qui est générer à chaques connexions. Que l'ouverture soit par code ou double clique.

le fichier.ldb à le même nom que le fichier .mdb. exemple madb.mdb quand je l'ouvrirais par code ou double cliques va automatiquement créer le fichier madb.ldb.

Le fichier .ldb et lisible par notpad mais parfois sans que je sache pour quoi elle est crypté.
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
24 févr. 2011 à 10:47
Je précise que le .ldb te donnera aussi le nom du pc puis l'utilisateur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
24 févr. 2011 à 10:53
je connais la lecture du ldb, mais comment intercepter sa création pour le lire?????


je me casse la tete la dessus et j'ai cherché partout sur le web ...;-))
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
24 févr. 2011 à 11:04
"comment intercepter sa création". Comme tu connais le path et le nom de la db il faut que tu fasse un code qui toutes le x min/sec teste sir madb.ldb existe.
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 févr. 2011 à 12:24
Dis moi, ta trouver la solution?
0
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
28 févr. 2011 à 14:03
non, le sujet est toujours en suspend. l'idée de faire un scan tous les x secondes ne me satisfait pas trop même si a priori y en a pas d'autre. peut-etre avec une autre manière d'ouvrir la base ? mais cette question était surtout pour ma culture perso et non indispensable donc je n'irais pas plus loin dans mes investigations.

merci encore pour les idées
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 févr. 2011 à 14:11
Je comprends. bonne journée.
0
Rejoignez-nous