erickup
Messages postés18Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention15 septembre 2008
-
22 avril 2003 à 10:22
ciavarella
Messages postés1Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention22 juillet 2008
-
22 juil. 2008 à 10:30
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
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 22 avril 2003 à 11:34
'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
erickup
Messages postés18Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention15 septembre 2008 22 avril 2003 à 11:40
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
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 22 avril 2003 à 11:51
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
erickup
Messages postés18Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention15 septembre 2008 22 avril 2003 à 15:11
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
fredx94
Messages postés4Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 1 décembre 2004 23 nov. 2003 à 03:56
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.
alfajac
Messages postés17Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention20 septembre 2005 11 mai 2004 à 13:03
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.
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 16 sept. 2004 à 11:13
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
alfajac
Messages postés17Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention20 septembre 2005 16 sept. 2004 à 20:18
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.
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 17 sept. 2004 à 09:06
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
cs_Fourdu
Messages postés1Date d'inscriptionmercredi 3 novembre 2004StatutMembreDernière intervention 3 novembre 2004 3 nov. 2004 à 15:51
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.
ciavarella
Messages postés1Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention22 juillet 2008 22 juil. 2008 à 10:30
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