Interception de message d'erreur (3356) lors d'une connexion sur une base Access

cs_Narbe Messages postés 2 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 13 juin 2003 - 13 juin 2003 à 01:48
cs_Narbe Messages postés 2 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 13 juin 2003 - 13 juin 2003 à 10:16
Contexte: appli VB5 et BDD access normalement partagée.
Cette appli est ancienne mais fonctionne bien et j'utilise toujours le mode DAO

Pour un utilitaire de cette appli j'ai besoin d'un accès exclusif: donc je veux savoir si quelqu'un est connecté au moment de l'execution.
Pour simplifier, et cet utilitaire fonctionnant la nuit (donc avec peu de chance qu'il existe des connexions), je lance directement le code suivant
(mydata est le nom de l'objet database, mystringConnect est le chemin complet d'accès au fichier .mdb)

mydata.close 'uniquement pour tuer ma propre connexion en mode partagé

set mydata=opendatabase(mystringconnect, true) 'True pour l'argument "exclusif" de la commande opendatabase

Si personne n'est connecté, ça fonctionne.
Si un utilisateur est toujours connecté à la BDD, j'ai le message traditionnel 'La base de donnée est ouverte par x sur la machine XX....' (Code erreur 3356), c'est normal (j'ai résumé)

Mon soucis est d'intercepter ce code erreur pour pouvoir faire le traitement approprié.

La classique gestion d'erreur "On error goto ..." ne fonctionne pas et je pense que c'est parce que le message vient de Access et non pas de mon appli.
Il y a certainement une solution pour intercepter ce type d'erreur (problème que l'on retrouve lorsque l'on attaque un quelconque outil bureautique et que celui-ci renvoie une erreur), mais je sêche depuis 12 heures la dessus !

Alors "A l'aide" ....

Merci d'avance

2 réponses

metalcoder Messages postés 193 Date d'inscription jeudi 14 février 2002 Statut Membre Dernière intervention 25 mars 2011 1
13 juin 2003 à 08:42
J'ai presque eu le meme probleme, sauf que moi je voulais parfois recompiler l'exe et bien sur si mon soft etait lancer je ne pouvais pas. J'ai donc mis un champ boolean dans ma base avec un timer qui vient regarder sa valeur, si il est a false l'appli se deroule normalement, maintenant on suppose que ton appli nocture met cette valeur a true, eh bien toute les appli lances vont trouver le champs boolean a true et donc apres un message d'avertissement, elles s'arretent.
C'est pas vraiment la solution pour toi, quoi que...par contre cette solution te permetterais en plus de recompiler la source si c'est toi son auteur...

@+
0
cs_Narbe Messages postés 2 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 13 juin 2003
13 juin 2003 à 10:16
Merci à Metalcoder: Début de piste interessant. Je peux recompiler l'exe quand je veux, par contre la modif de la BDD est plus difficile (7 sites dans deux départements) et dans la grande maison à laquelle j'appartiens je n'ai pas de correspondant su place pour le faire. Donc je préfère toujours trouver les solutions dans l'executable dont je suis le créateur.
Merci
ciao @+
0
Rejoignez-nous