VB 2005 + ACCESS : Multi-Utilisateurs

cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007 - 4 juin 2006 à 07:42
 bulbizzard - 6 oct. 2008 à 11:53
Bonjour,

Je viens de réaliser un logiciel avec VB2005 et une base de données Access. Je m'adresse aux personnes qui connaissent bien Vb.net + Access, car m'a question n'est pas une question en générale, mais bien spécifique à ces 2 logiciels de dévellopement!

Faut-il gérer l'accès concurentielle à ma base de données, ou, est-ce-que VB2005 gère lui-même les accès à cette base?

Pour détailler un peu plus...
J'ai un soft en VB2005 et une base ACCESS. Cette dernière est placée sur le réseau. Le logiciel en VB2005 est placé sur plusieurs PC. En fait , le soft en VB2005 exploite les données de ma base ACCESS.
Mais, il faut penser que tôt ou tart deux utilisateurs qui utilisent le soft vb2005 (sur 2 PC différents), mettront occasionellement ma base de données à jours et en même temps... 
Donc là, normalement, y a problème! Mais, j'espère que VB2005 à la faculté de gerer ces 2 utilisateurs simultanés? Remarque: On utilise " UPDATE " pour mettre à jour la BBD.

Donc voilà, je me bas pour savoir comment sa marche, mais je ne trouve décidément pas! J'insiste à m'adresser à des personnes compétantes dans mon cas très précis (et non pas des cas similaires venant d'autres softs de dévelloppement). Pouvez vous me donner des liens ou je pourais trouver du code en VB2005 (ou 2003), si il faut programmer l'accès concurenciel.

Merci de votre aide, cordialement

25 réponses

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 11:30
De mémoire, il est possible de mettre des verrous sur une table en Access. ainsi un utilisateur devant écrire dans la base vérouillera la table avant de faire ta modif. Il est aussi de bon usage d'utiliser des transactions (commit/rollback) mais il me semble qu'access ne le gère pas.

par contre, à moins que ta base soit utiliser par d'autre applications, pourquoi ne pas la porter en sql server 2005 express, les perf, multi-user, sécurité n'en seront que mieux gérer
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
5 juin 2006 à 15:32
Bonjour,

Moi aussi je me pose la meme question....

J'ai lu dans le livre : visual basic .Net version 2003, que tu peux utiliser sql server pour regler le probleme, il faut installer un exemplaire sur le serveur....
encore un produit en plus a acheter...

j'aimerais avoir plus de renseignements a ce sujet ...
0
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 16:11
SqlServer 2005 express est gratuit par contre il nécessite le frameword 2.0. sur ce qui est de pouvoir l'attaquer grâce à une application écrite en .Net1.1 je n'en sais rien j'ai jamais testé.
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
5 juin 2006 à 16:25
ce qui nous interresse ici c'est de savoir la meilleure solution pour acceder a une BDD sur un reseau, je voudrais savoir ou stocké la BDD si elle est en access if faut un dossier partagé dc un PC allumé .... sur un serveur on peut stocké une BDD faut un disque dur connécté non ???


je pense que si tu veuc une solution "pro" c'est sql server qu'il te faut ....


 


 
0

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

Posez votre question
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 16:32
C'est sûr que si c'est centralisé vaut mieux éviter la base fichier ^^ mais plutot une db serveur. mais attention sql server est payant ! il existe toutefois un oracle 10g gratuit (a voir s'il est serveur ou fichier) sinon y a toujours mysql qui a déjà été mis plus d'une fois en production dans des solutions "pro". (et encore tout plein d'autre d'sgbd)
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
5 juin 2006 à 16:55
Mais la base serveur elle est situé ou ?
0
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 17:11
sur une machine accessible depuis tout le réseau. maintenant que ta machine soit sur le réseau local ou hébergé au japon ca n'a pas d'importance
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
5 juin 2006 à 21:40
avec sql serveur , la bdd on la mets sur le serveur non ?
mais physiquement la base de données , j'ai pas compris est sur un PC?? qu'on accede a partir du serveur, je vois pas l'utilité...
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
6 juin 2006 à 02:48
L'utilité de placer la BDD sur le serveur est de pouvoir l'exploiter sur plusieurs ordinateurs. Ainsi les sources de donnèes (contenues dans cette base de donnès) sont accessibles sur tous les PC du réseau. Plutôt cool !

Bref tous ces briants commentaires ne répondent pas précisément à ma question (voir le premier poste). Si quelqu'un connait bien VB.net + Access, pouvez-vous me dir si VB est autonome sur l'accès concurenciel à une base de données ACCES ?

Merci de votre aide.
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 11:39
En fait c'est plus tendu de faire des connexions simultanées car le probleme est qu'avec access (serveur de fichier) on doit telecharger la bdd avant de la modifier et donc s'il y a plusieurs utilisateurs ... la bande passante peut vite saturée...
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
6 juin 2006 à 16:15
Je suis bien d'accord! J'ai été très déçu de la lenteur avec laquel mon application VB met de temps pour ouvrir ma BDD. Donc, si par exemple 2 utilisateurs ouvrent la BBD en même temps sa risque fort de créer un "conflit concurenciel". Enfin, j'ai pas encore fait les essais en multi-utilisateurs.

"J'ai lu dans le livre : visual basic .Net version 2003, que tu peux utiliser sql server pour regler le probleme, il faut installer un exemplaire sur le serveur...."

Ton idée de migrer vers SQL express me parait interressante. L'ennui c'est le temps que ça peut prendre... Dans ce livre, ils parlent vraiment de ce problème avec access? Enfin que dit-il vraiment?

Connaissez-vous des livres parlant des précautions à prendre pour créer des aplications multi-utilisateurs. C'est très important si l'on désir créer des applications stables et puissantes, surtout pour des entreprises.

Merci de vos réponses
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 16:21
j'ai lu le meme livre que toi !! il est tres bien il me passionne, par contre j'ai essayé d'installer sql server 05 prof et je pense qu'il faut un serveur physique pour l'utiliser...
c'est drole héhéhé, enfin je suis sur que l'on peut simuler un serveur....
enfin la reconnaissance et l'installation doit se faire ss prob sur un reseau pourvu d'un serveur il doit pas y avoir de prob pour faire la BDD, suffit de savoir sur quel pc installé le sql server....
sinon tu peux a partir de visual studio faire ta base le meilleur exemple est sur le site (coach VB) en revanche la meuf est calée et elle fait des classes etc... c'est assez cho mais bon...
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
6 juin 2006 à 16:31
Ok, j'irai faire un rour sur "coach VB". Au faite j'ai pas lu le livre, c'est juste une citation de ta phrase !

A part ça, sur developper.com j'ai obetenu deux liens qui Soi-disant parlent du problème en question, mais c'est malheureusement en englais. On peut utiliser le traducteur linguistique de google (à moins que vous connaissez un meilleur moyen de traduction?). Pour l'instant j'ai vaguement lu ce qu'ils raconte. Vous me ferez part de vos commentaires . Bon a plus
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
6 juin 2006 à 16:32
0
queenvince1 Messages postés 10 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 21:15
Houla! C'est tendu les deux liens ....assez cho a comprendre sql n'est apparement pas compliqué tu peux meme creer ta bDD dans VS .net !!!
apres avoir installé sql server , bien entendu tu auras une bdd sur serveur !!!!
0
GiBuSS1942 Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 20 juin 2006
14 juin 2006 à 12:51
Mais avec Acces et VB.NET on peut attaquer une base de données a plusieurs en meme temps... ???

Ils suffit de mettre sa dans l'ouverture de la connexion :
Cn.ConnectionString "Provider MSDATASHAPE; Data Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = C:\Documents and Settings\RATP\Bureau\Projet\Indexation\Indexation\bdindex.mdb"
        Cn.Open()

Non ???? Moi en faisant sa je peux l'attaquer de different endroit et le programme gere lui meme le "tour a tour". Il bloque l'acces seulement lors de l'update...

Enfin sa marche avec mon programme mais peut etre pas avec le tien ... Je donne juste mon avis
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
15 juin 2006 à 17:32
Salut,

Depuis mon dernier message sur cette question, je n'ai pas cherché plus car j'ai restitué mon projet à l'entreprise. Cette dernière ne ma pas donnée de nouvelles sur le bon fonctionnement de l'access à plusieurs utilisateurs simultanés de la base ACCESS.

Ce que tu dis GiBuSS1942, m'interresse beaucoup.

1 ) "Il bloque l'acces seulement lors de l'update... " 

VB affiche-t-il un message automatiquement et sans que tu ne l'ai programmé? Ce message est de quelle forme : Est-ce-qu'il faut appuyer sur OK pour poursuivre ton application normalement? Ce message, que dis-t-il vraiment?

2 ) Le code de ta connection que tu as écrit dans ton message

Moi j'utilise l'assistant pour me connecter à ma source de données. Toi, apparament, tu fais cela de manière manuel ( en écrivant le code ). As-tu inséré quelque chose de spécial dans ce code de connection à ta base de donné, pour permetre à VB de gérer les acces simultanés sur ta base de données.

Merci beaucoup pour les renseignements que tu peux m'apporter.
Cordialement.
0
GiBuSS1942 Messages postés 11 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 20 juin 2006
15 juin 2006 à 19:11
Alors premierement, non le programme ne te mettras pas de message, tous se fait en arriere plan si on peut dire, en fait lorsque que ce que tu auras programmer dans ton code mettras a jour ta base de donnees, il bloquera l'acces aux autres utilisateurs, mais il ne tient qu'a toi de mettre dans ton code que si la base est deja utilise, une message box apparait disant a l'utilisateur de recommencer dans quelques seconde.

Ensuite pour ta deuxieme question, il suffit juste d'implanter la gestion de base de donnee ADODB dans VB, pour cela tu va je crois dans projet, ajouter une reference et tu cherche un truc ressemblant a "Microsoft ... ADODB 2.8 library"

Voila si tu a d'autres questions, ou si je peux t'aider, voila mon msn gibuss_@hotmail.fr.

Bonne chance
0
cs_AzertyH Messages postés 69 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 18 janvier 2007
15 juin 2006 à 21:50
Merci pour tes réponses,

Est-ce-que tu aurai des liens qui pourraient m'expliquer comment on met en place ce système de sécurité et en français ?

Ou encore des mots clef de recherches dans GOOGLE.

Je ne sais pas ou et comment chercher quelquechose qui pourrait bien m'expliquer clairement et simplement ce procédé de sécurité.

A vrai dire je n'ai pas encore vu ce cas de protection, malgrès mes lonques recherches

Merci de ton aide
0
cs_oubaid639 Messages postés 5 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 mars 2007
7 févr. 2007 à 23:28
Bonjour,
bon avant tout je vais te dire que aussi je programme sous VB2005 et ACCESS et j'ai deja realiser un logiciel (application wondows) et je l'ai testerpas mal de fois et c'est bien
1 - alors ta deux methode soit copier ta base sous reseau et le logiciel dans chaque poste client (c'est pas pratique) oubien copier la base access dans le serveur et installer le logiciel aussi dans l serveur apres crée dé raccourçi dans les poste concerné oubien partagé le raccourçi

2 - je ne sais pas si tu prgramme aussi des application Web + ACCESS, si c'est le cas je peux t poser une question a propos d'access car mon probleme c'est que je peux partir installer l'application dans tout les poste client car c'est une application nationale alors j sais pas comment faire pour ma base access ?
voila mon adresse pour mieux discuter nos problémes ([mailto:benzougarh@gmail.com benzougarh@gmail.com])

(enfin j'ai trouvé quelqu'un qui programme sous VB2005)
0
Rejoignez-nous