URGENT:performances sur access en reseau

Signaler
Messages postés
18
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
15 septembre 2008
-
Messages postés
1
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
22 juillet 2008
-
Merci de vos réponses, je suis vraiment tres ennuyé....
Je développe un application ACCESS avecc VBA. Cette application est destinée à etre distribuée , et doit fonctionner en réseau.
L'architecture que j'ai choisie est la suivante:
Une base access contenant les tables (mestables.mdb)
Une base access contenant le code (forms, requetes, etc...) (moncode.mdb)
Ce qui me permet de livrer les maintenances sur le code, sans toucher aux tables utilisateurs.
L'implémentation que j'avais choisie est la suivante:
La base access mestables.mdb est unique sur le reseau local (sur un serveur de fichier) et la base access moncode.mdb est distribué sur les postes utilisateurs.
Cette application est entièrement dévelopéé et je souhaite garder le code sous access.
En déployant cette application sur le premier site, je me suis apercu que les temps de réponses étaient inacceptables. (temps d'accès à la base mestables.mdb).
ma question est la suivante et peut être a plusieurs réponses:
Comment faire pour accélerer les temps de reponses sans toucher à l'application access.
en utilisant MSDE, comment faire pour se reconnecter à la base?
Comment distribuer les modifications de tables sous MSDE?
Comment se connecter au serveur aveec MSDE?
Comment distribuer l'application et le serveur MSDE (je comptais distribuer l'application avec OFFICE Developper TOOLS)
Ou trouver des infos simples et utilisables rapidement?
Merci encore de vous pencher sur mon problème, et d'avoir pris le temps de tout lire

12 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
'lut

si tu veux augmenter sensiblement les perfomance sous access en rezo, il faut que les requetes soient executé sur le serveur et non en local :
si ton client execute une requete sur le serveur, access envoie au clients les elements necessaire a la requetes. le client execute la requete et renvoie au serveur le resultat (update eventuel, insert ou autre)

Pour ma part, j'ai opté pour un intermediaire (un serveur Http)

gain: tmps /10 avec 2 postes en rezo
/30 avec 10 postes

@++

:clown) BasicInstinct :clown)
Messages postés
18
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
15 septembre 2008

merci mais ca marche encore moins bien si je pose ma base moncode.mdb sur le serveur et non sur le poste client
Comment as tu fait pour utiliser un serveur http? c'etait sous windows? et tes bases sont stockeés de quelle facon?
merci de tes reponses
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
j'ai créé une page asp et je lui passe en parametres la requete.
la page me renvoie un fichier XML.
au passage j'ai passé mon code en VB.NET (juste la partie trop lente: encaissement ) puisque l'appli a court terme devra s'executer via un VPN

avant j'avais ma base sur un serveurs et des raccourcis sur les clients

maintenant, j'ai ma base , mon exe .NET, et mon serveur Web sur le meme serveur et des raccourcis de mon Exe .net sur les postes clients

:clown) BasicInstinct :clown)
Messages postés
18
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
15 septembre 2008

merci de ta reponse mias c'est vachement compliqué...
tout mon code est sous access, et tous mes formulaires sont liés (Sources Données) a des requetes sur les tables attachées.
je ne peux pas (j'ai pas le temps) de tout reecrire
mon applic est longue au premier formulaire (40 secondes) ce qui peut encore se gérer, mais aussi 40 voire 50 secondes a chaque changement de formulaire (si je ne suis pas tout en local, sinon c'est hyper rapide)
as tu des infos sur msde?

merci
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
desolé, rien sur MSDE, et je ne vois pas trop comment tu peux t'en sortir en gardant access,desolé...

:clown) BasicInstinct :clown)
Messages postés
4
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
1 décembre 2004

Salut,

J'ai moi développé plusieurs bases de données sous access et essayés plusieurs architectures pour optimiser les temps de réponses et les problèmes liés à la maintenance.

La structure que j'ai finalement choisi est identique la suivante : un fichier ".mdb" contenant les tables, et un fichier ".mde" pour les codes (forms, requête, état...).

Cependant, pour améliorer les temps de réponses tu dois heberger tes 2 fichiers sur le serveur et créer un lien sur chaques postes utilisateurs au fichier des codes.
Ceci te permettra également en cas de maintenance de ne remplacer qu'un seul fichier, celui sur le serveur et non sur chaque postes.

Attention, Access ne sera qu'efficace que si tu ne dépasse pas un certain nombre d'utilisateurs. En effet plus il y a d'utilisateurs, plus les bases sont sollicitées, donc plus sa rame, plus sa plante et tu dois alors "réparer les bases".
Access reste donc bon jusqu'à environ 10 à 13 utilisateurs simultanés.
Bien entendu, cela dépend également de tes codes et de l'importance de tes requêtes.

Fait donc attention aux formulaires trés chargés en requête et aux champs qui recherchent des infos sur d'autres formulaires.

J'éspère tout cela pourra t être utile... a+
Messages postés
17
Date d'inscription
mercredi 12 mars 2003
Statut
Membre
Dernière intervention
20 septembre 2005

Salut,

vous avez tous oublié e parler des relations de tables,

TRES IMPORTANT pour ameliorer les temps d'acces.

je pencherais deja pour ca en premier lieu, surtout pour les applications complexes : j'ai une base qui fait 230Mo en reseau avec application aussi sur reseau,et multi utilisateur avec gestion de profil, ... no prob ca marche bien et le temps d'acces est correct ... qq soit la requete.

A+

8-) Le Negociateur
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
J'ai également une solution, mais elle n'est pas à utiliser à toutes les sauces...
En effet, vous pouvez également copier les tables au démarrage et garder les tables liées. Ainsi, vous travaillez sur les tables en locales et lorsque vous faites une modif, vous modifiez sur les 2.
Cette méthode est très efficace surtout sur les tables succeptibles de ne pas être modifier trop souvent par les utilisateurs. Ou juste pour faire de la consultation.
TBBUIM
Messages postés
17
Date d'inscription
mercredi 12 mars 2003
Statut
Membre
Dernière intervention
20 septembre 2005

Salut,

tu n'as pas de probleme de taille de fichier avec tes copies de tables ?
si on utilise les liens de tables, on s'epargne la compression du programme gerant les données et on peut a ce moment la gere la compression des données.

8-) Le Negociateur
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Biensur, je compacte la base à chaque fermeture
en supprimant les tables que j'ai copié.
Donc aucun problème de taille de fichier!
Et ça tourne 10 fois plus vite que n'importe quelle config.
J'ai déjà testé toute vos solutions, pour moi celle là est la meilleure. Même quand on fait un lien de table sur un programme qui est sur le disk dans le même répertoire, ça va plus lentement que d'avoir la table directement dans le programme!
Donc à vous de voir ce qui est le mieux pour vous...
TBBUIM
Messages postés
1
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 novembre 2004

J'ai eu le meme probleme. Si le nombre d'utilisateur dépasse 10, vous devez passer en sql.
Ma solution : -convertir les tables au format Mysql
-Installer un serveur Mysql
-Utiliser un lien ODBC pour lier l'application access au serveur Mysql.

Cette solution est super fiable, super rapide. En effet, l'acces devient quasi instantané. Si vous avez besoin d'autres questions pour l'installation, n'hésitez pas.
Messages postés
1
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
22 juillet 2008

Sorry je ne parle bien france..(soulmant italian)
DANS  ACCESS 
UPSIZE WIZARD  -->  MSDE(OBSOLETE)  -->  SQLSERVER EXPRESS 2005 + ODBC (4 GIGA  X DB)
CONNECT TABLES OVER ODBC TO SQLSERVER