Base en reseau

d67 Messages postés 3 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 9 décembre 2003 - 7 déc. 2003 à 18:43
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 10 déc. 2003 à 11:34
J'ai une appli qui tourne sur plusieurs poste client, tous utilisent une base acces sur le serveur avec ADODC directement connecté. Je voudrai pouvoir raffraichir toute les appli automatiquement si un client ajoute ou effectue une modif sur un enregistrements dans la base. Comment faire ?????

6 réponses

cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
7 déc. 2003 à 21:17
Pascal Laurençon

Je ne comprend pas très bien, ta base acces est déjà sur un serveur et tes postes clients s'y connectent déjà, c'est quoi que tu désire mettre à jour ton appli ou ta base et pourquoi devrais tu modifié ton appli sur les postes clients lorsque ta base est modifié ??
0
cs_EXCLUSIF Messages postés 59 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 9 août 2007 1
7 déc. 2003 à 23:51
Il faudrait mettre un Timer dans chaque appli et mettre un intervalle de temps paramétrable en stockant sa valeur dans un ini par exemple. Ensuite tu crées une fonction qui rafraichit ton affichage et tu l'appelles dans l'évènement timer.

eXclusif
0
d67 Messages postés 3 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 9 décembre 2003
8 déc. 2003 à 19:19
La base se trouve sur un serveur et plusieurs client se connect et travail sur la même table le probleme c'est qu'il faudrait que tous puissent voir les modif effectué par d'autres. De plus si un client ouvre l'appli le matin et la referme le soir que va t'il se passer lors d'un recordset.update va t'il enregistrer les modifs stockés par son recordset ? ce qui voudrai dire que les modif ou ajout des autres utilisateur seront perdues.
Et ce que je voudrai aussi c'est pouvoir bloqué un enregistrement si il est utilisé par un des clients afin que les autres ne tappent dedans en meme temps.

Si tu as une idée sur ce fonctionnement.

Merci
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
9 déc. 2003 à 13:26
Pascal Laurençon

Je comprend mieux ta question, en fait pour ma part je procède de cette façon:

Pour afficher ma table
j'ouvre un recordset qui m'affiche les données dans un grid

Pour modifier un record
j'ouvre une fenêtre avec un textbox pour chaque champ du record que j'édite.
lorsque l'utilisateur à changé les données et qu'il décide de mettre à jour la table, préalablement je compare le record actuellement dans mon grid avec celui présent dans ma base et s'il y a une différence je le signale à l'utilisateur qui à le choix alors, de mettre à jour la vue qu'il a de cet enregistrement et si besoin annuler les modifs qu'il voulais effectuer.

les avantages:
la table en question reste accessible pour les autres utilisateurs sauf durant la procédure d'update donc minime de plus si un utilisateur essaye d'accéder un record durant l'update access gère cela et retourne un message d'erreur.

les inconvénients:
Un code un peu plus touffu

Si tu as besoin de plus de précision, mail moi et je t'enverrai un exemple.
0

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

Posez votre question
d67 Messages postés 3 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 9 décembre 2003
9 déc. 2003 à 21:06
David

C'est exactement cela que je fai avec un grid et les text box. j'utilise un pointeur de type "dinamic" afin de le positionner sur le sreveur. seulement dois je utiliser un timer pour faire un refresch sur l'ado afin que les autres utilisateurs recoivent les modifs en temps reel (ou pratiquement)dans le grid, y a t'il un moyen de savoir si une base acces à été modifie par un autre utilisateur afin de rafraichir le grid des autres postes.

Je ne pense pas être le seul dans ce cas.
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
10 déc. 2003 à 11:34
Pascal Laurençon

Je t'invite si tu maitrise l'anglais à lire cet article de msdn il répondra à ta question mieux que moi. l'idée d'ajouter un champ timestamp si tu utilise la méthode optimistic me parait satisfaisante.

bonne prog.
0
Rejoignez-nous