|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Bonjour,
Voilà ma problématique : il se trouve que la base de données sur laquelle je travaille concerne pour le moment une zone géographique donnée, mais qu'il me faut prévoir le fait que j'aurai besoin de la même structure de base pour d'autres zones géographiques. J'ai donc pensé qu'il faudra faire une base de données distincte par zone (par ex.: Nord, Sud, est, Ouest), mais : 1) je ne suis pas sûr que ce soit la meilleure solution 2) si ça l'est, comment faire pour que l'interface d'utilisation lie les 4 bases ? J'ai fait des recherches en ce sens, mais je n'ai rien trouvé qui permette par exemple d'avoir un formulaire Menu Principal où l'on se rendrait au départ et dans lequel il y aurait 4 boutons qui ouvriraient les bases correspondantes... Merci bcp d'avance, en espérant avoir été suffisamment clair ! Kareg. |
|
|
00
|
|
|
#2 | |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Citation:
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
00
|
|
|
#3 | |||
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Citation:
Citation:
Citation:
En espérant t'aider. [Edit : mout1234 plus rapide et plus pertinent !]
__________________
J'aime les gâteaux. |
|||
|
|
00
|
|
|
#4 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Merci pour vos réponses (ultra) rapides !
Citation:
Citation:
Précision : j'avais pensé au formulaire unique en entrée pour des raisons "esthétiques" et de commodités essentiellement, mais ce n'est pas non plus indispensable. Avoir les 4 bases de données consultables "côte à côte" peut aussi convenir, mais serait moins pratique. Citation:
Merci bien ! Kareg. |
|||
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Citation:
__________________
J'aime les gâteaux. |
|
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Citation:
http://dolphy35.developpez.com/artic...esReseaux/#LII Ensuite, deux approches majeures me semblent envisageables: Solution 1: une seule base de données (une seule dorsale) contenant les données nationales.
Solution 2:autant de bases de données (dorsales) que de périmètres.
Etablir dynamiquement la liaison: http://access.developpez.com/faq/?pa...#RetablLienTbl Pour ma part, je pense que j'irai plutot vers la solution 1, notamment parce qu'elle est la plus évolutive.
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Merci à vous 2 !
J'ai opté pour la solution 1, grâce à vos conseils avisés, mais maintenant je suis de nouveau bloqué (désolé) Comme l'a indiqué Demco, j'ai créé la table Région, avec un champ Région qui sert de lien dans les tables concernées (il y en a 5), mais maintenant je ne cerne pas où doit se faire le tri, la sélection dans les formulaires... J'ai donc un formulaire Menu principal, dans lequel il y a 4 boutons amenant vers chacune des régions. Et ces boutons ont pour action "ouvrir un formulaire", ce dernier étant un sous-menu qui sera identique aux 4 régions. C'est dans ce sous-menu que l'on a ensuite accès aux formulaires des tables, par 5 boutons adéquats. Sachant cela, où doit-on appliquer le tri ? Par intuition j'ai pensé créer un sous-menu par région, mais n'est-ce pas faire la même erreur de jugement que je faisais tout à l'heure ? Je m'étends mais peut-être que je devrais maitenant poster dans la section VBA Access Merci encore en tout cas ! Kareg. |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Puisque tu es libre quant à l'architecture générale de ton interface et que les régions disposent de fonctionnalités quasi identiques, pourquoi en effet créer autant de "sous menus" que de régions?
Je te conseille plutôt de paramétrer dans une table la région utilisée (une table locale à ton interface, donc pas dans la dorsale . Ainsi le paramétrage est propre à chaque poste de travail). Selon la nature d'exploitation de l'application, tu permets à l'utilisateur de changer le paramètre dans un écran dédié ou tu lui demandes de sélectionner la région dans le menu d'accueil. Ensuite tu fais référence à cette table dans toutes les sources devant être filtrées et le tour est joué
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Citation:
__________________
J'aime les gâteaux. |
|
|
|
00
|
|
|
#10 | ||||
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Remarque. En complément, il peut être pratique d'écrire une petite fonction en VBA qui retourne le code de la région sélectionnée. En stockant la valeur dans une variable au démarrage et/ou lorsque l'utilisateur change de région.
Pour ma part, je mets ce genre de truc dans une classe représentant l'appli... mais bon .. pour faire simple, tu crées dans un module standard quelque chose du genre: Code :
Code :
Tu peux alors utiliser ta fonction n'importe où, par exemple dans une requête: Code SQL :
SELECT * FROM MaTable WHERE CodeRégion = ap_GetRégionEnCours() Bon dev
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
||||
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Donc si j'ai bien compris cela suppose que la base soit scindée (je ne l'ai pas encore fait)? et que la table dont vous parlez soit ajoutée dans la base frontale ?
Je n'ai jamais fait de fractionnement de base, donc pour le moment c'est assez flou mais je vais prendre le temps de bien me familiariser, notamment avec le tutoriel dolphy35... en espérant trouver les réponses aux questions éventuelles qui se poseront ! Merci ! Kareg. |
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Code :
Donc si j'ai bien compris cela suppose que la base soit scindée
Bon dev
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
00
|
|
|
#13 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Je vais encore vous embêter, car j'aurai besoin de quelques indices / conseils (je débute dc je rame) :
Citation:
Et concernant la fonction VBA, où dois-je la mettre si j'opte pour le choix ds le menu d'accueil ? Je précise à nouveau qu'il s'agit de ma 1ère BDD, j'ai pas mal potassé ds des bouquins et des tutos, mais là je me sens légèrement dépassé ... Et toujours merci ! Kareg. |
|
|
|
00
|
|
|
#14 | ||
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Tu mets ta table locale comme source de ton formulaire d'accueil
Tu mets une liste déroulante, liée à ton champ de ta table locale Si tu veux utiliser ma petite fonction, tu mets tout le code que je t'ai fourni dans un nouveau module Puis tu appelles la procédure Set à partir de l'évènement Aprés Mise à jour de ta liste déroulante. Quelque chose du genre Code :
Bon dev
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
||
|
|
00
|
|
|
#15 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Encore une question ...
Citation:
Citation:
Merci !!! Kareg. |
||
|
|
00
|
|
|
#16 | |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Citation:
Bon dev
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
Ca ne marche pas, je crois que je vais jeter l'éponge pour le moment
Désolé mais je ne comprends pas, le fait d'avoir une table locale m'empêche de spécifier à quelle région appartiennent les enregistrements de mes formulaires, et je n'ai aucune idée sur la façon de m'y prendre et il me semble que je me suis mal expliqué et/ou que la logique de la chose m'échappe A + et merci Kareg. |
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Citation:
Ce n'est pas forcément la méthode la plus efficace mais pour faire simple ... tu peux utliser ma ptite fonction Code SQL :
SELECT * FROM MaTable WHERE CodeRégion = ap_GetRégionEnCours() Sinon un cas classique pourrait être Code SQL :
SELECT MaTable.* FROM MaTable INNER JOIN tblParametres ON Matable.coderégion = tblParametres.CodeRégion
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 91 ![]() |
En fait après avoir abandonné un temps je reviens à la charge, ça m'énerve de ne pas comprendre ni trouver
Je récapitule la démarche suivie, en pointant les difficultés rencontrées : (en repartant du départ, et en travaillent sur la base locale) - création d'une table région, qui s'appelle "Area", dans la base locale. Elle comporte 2 champs, AreaID (en numéroAuto) et AreaName (en texte, pour les 4 régions "Est","Ouest", "Nord" et "Sud"). - dans le menu principal, création d'une liste déroulante ayant pour origine les valeurs des 2 champs de la table "Area". La zone de liste s'appelle "CboAreaID". - la source du formulaire d'accueil est la table "Area". Premier problème: Mon menu d'accueil renvoit vers plusieurs formulaires ; prenons l'exemple de l'un d'entre eux, le formulaire Wells (dont la source est la table "IdWell") : Il contient des enregistrements de puits que je voudrais pouvoir relier à la région à laquelle ils appartiennent. Comment faire pour que les enregistrements soient enregistrés comme appartenant à une région donnée (avant de faire le tri donc?)? Mon reflexe serait de créer un champ "AreaID" en menu déroulant lié à la table "Area", mais je ne parviens pas à faire le lien entre la table "IDWell" et la table "Area" puisque cette dernière est sur la bdd locale. Je m'arrête à cette 1ère question, car une réponse éventuelle sera déterminante pour la suite... A ++ Kareg. |
|
|
00
|
|
|
#20 | |
![]() ![]() Inscription : novembre 2006 Messages : 2 200 ![]() |
Citation:
Ce que tu dois mettre en local c'est une table de paramètres (qui peut stocker d'autres paramètres propre à l'utilisateur) dans laquelle il n'y aura qu'un et un seul enregistrement. Cette table comporte un champ par paramètre. Dans notre cas, un simple champ AreaID (Numérique / Entier Long). Il recevra la valeur de l'ID de la région sélectionnée par l'utilisateur. La liste déroulante elle proposera des valeurs en se basant sur ta table AreaID et tes autres sources pourront se référer à une région par une relation avec la table Area. Ok?
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com