Problèmes avec plusieurs utiliateurs pour un fichier excel en réseau

cs_adri37 Messages postés 10 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 novembre 2009 - 10 avril 2009 à 16:06
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 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

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
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.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
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.
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_adri37 Messages postés 10 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 24 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?

Cdlt,

Adrien
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
13 avril 2009 à 23:51
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
12 avril 2010 à 00:27
Bonjour Adrien

Il y a peut être une solution pour toi :

http://www.vbfrance.com/codes/AVERTIR-QU-FICHIER-EXCEL-EST-OUVERT-SANS-ACCES_51602.aspx

(je donne l'adresse car je n'ai toujours pas compris comment on ajoute un lien direct dans une réponse...)
Cdt
Rataxes64
0
Rejoignez-nous