Problèmes avec plusieurs utiliateurs pour un fichier excel en réseau
cs_adri37
Messages postés10Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention24 novembre 2009
-
10 avril 2009 à 16:06
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
12 avril 2010 à 00:27
Bonjour,
J'ai développer une base de données en Excel VBA que j'ai mise en réseau (sur un disque dur commun).
Le problème est que lorsque le fichier est ouvert par deux utilisateurs et que les deux réalisent des modifications alors seul les modifications réalisées par celui qui a ouvert le fichier en premier pourront être sauvegardés.
Je souhaiterai donc:
- soit qu'une seule personne à la fois ne puisse ouvrir le fichier excel (et prévenir quiconque voudrait ouvrir le fichier que celui-ci est déjà ouvert par un autre utilsateur)
- soit que le fichiers puissent être modifié et sauvegardé par plusieurs utilisateurs même si ce dernier est ouvert sur différents pc.
Merci d'avance pour votre aide.
Cdlt,
Adrien
A voir également:
Problèmes avec plusieurs utiliateurs pour un fichier excel en réseau
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 10 avril 2009 à 16:19
Salut
Oui, c'est normal pour un fichier Excel, Word ou simplement TXT
Par contre, si les programmes de tes utilisateurs n'utilisent que la DB définie dans ce fichier, je pense qu'il faudrait y accéder non pas comme un fichier Excel, mais comme une connexion à une DB.
Là, tu auras (peut-être) le choix d'utilisateurs multiples.
Voir ce site de référence www.connectionstrings.com/ pour définir la chaine de connexion d'un ADODB par exemple.
Toujours avec cette dernière hypothèse, l'autre solution consisterait à convertir ta DB sous Excel en une DB sous Access. Là, c'est sur, tu auras le choix de multiples utilisateurs, Excel n'étant pas vraiment l'outil idéal pour faire une DB
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 10 avril 2009 à 19:13
Access non plus, du point de vue de multi-utilisateurs.
Migre ta base vers MySQL (open-source) ou MSSQL (si tu l'as déjà, on ne sait jamais).
Avec ceux-là, tu n'auras plus jamais aucun problème.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 avril 2009 à 20:38
Si, Access permet l'accès multi-utilisateurs, mais impose des règles d'accès plus strictes, notamment l'utilisation de Transactions (BeginTrans, CommitTrans, ...) pour éviter les doublons
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 12 avril 2009 à 00:21
Quand des gens accèdent en même temps à la même ligne c'est du carnage ...
Et ce même dans Access lui-même.
Il n'y a évidemment pas ces problèmes sous MSSQL / MySQL.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 avril 2009 à 05:15
C'est pour cela qu'il existe les enpaquettages "Transaction" :
Tu commences par ouvrir une transaction : BeginTrans sur ta connexion
Tu fais les lectures et les modifs qui te plaisent, il travaille avec un buffer.
Si tu veux valider toutes tes modifs/données, CommitTrans.
Si tu veux annuler ce que tu as commencé : RollBackTrans
Pendant l'exécution de la validation ou de l'annulation, la DB est bloquée, mais ça ne dure qu'un pouillème de seconde.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_adri37
Messages postés10Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention24 novembre 2009 13 avril 2009 à 22:05
Merci Jack et ghuysmans99 pour vos réponses mais celle-ci sont beaucoup trop technique pour moi (novice)..., je ne comprend pas vos solutions. :-(
Mon application doit rester un fichier excel car je ne sais me servir ni de Access ni de MySQL.
Je suis bien allé sur www.connectionstrings.com/
mais je n'ai pas compris non plus commet utiliser les codes qu'ils proposent.
Au pire, si le partage sous excel est trop compliqué voir impossible, serait-il possible d'empêcher l'ouverture du fichier lorsque ce dernier est déjà ouvert par un autre utilisateur?