Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 13h58   #1
Invité de passage
 
Gilles Plattner
Inscription : avril 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Gilles Plattner

Informations forums :
Inscription : avril 2010
Messages : 4
Points : 0
Points : 0
Par défaut Formules et relations de tables sous access

Bonjour,

Je suis confronté au problème du nombre de ligne sous Excel, et je pensais trouver la solution sous access... le problème c'est que je ne connais pas access du tout et que je dos rendre ce travail ce soir... (nan,... si, si...)

Voilà ce que j'ai sous Excel et que je cherche(rais) à reproduire sous access (si toutefois access est la bonne solution):

Première feuille Excel:

Premier tableau: Liste de villes et leur population
- Champ 1: Une liste de villes
- champ 2: population de ces villes en 1950

Second tableau: Distance entre chaque ville
- Champ 1: Ville1_départ
- Champ 2: Ville2_arrivée
- Champ 3: Distance Ville1 à Ville2
(Donc par exemple, pour quatre villes dans ma liste, j'aurais 6 lignes dans le second tableau, car:
Distance Ville1_VIlle2
Distance Ville1_Ville3
Distance Ville1_Ville4
Distance Ville2_Ville3
Distance Ville2_Ville4
Distance Ville3_Ville4)
- Champ 4: Distance pondérée entre Ville1 et Ville2 (=distance*(popville1_en1950+popVille2_en1950)

Tableau 3: Distance moyennes de chaque ville à toutes les autres
- Champ 1: La liste des villes
- Champ 2: moyenne pour chaque ville de sa distance à toutes les autres
(par exemple, pour Ville3:
(Distance Ville3_Ville1+ Distance Ville3_Ville2 + Distance Ville 3_Ville4)/3
- Champ 3: idem que le précédent mais avec les distances pondérées.


Deuxième feuille Excel:
Tout identique sauf que la population est celle des années 1960 et non plus 1950.

Il y a donc des relations entre les tableaux et des formules de calculs.
Sous Excel, j'utilisais par exemple les formules Decaler() et Equiv() ainsi que des moyennes conditionnelles.

Le problème intervient lorsque ma liste de villes n'est plus constituées de 4 villes mais de 1236 villes ce qui fait pas moins de 763230 distances à calculer....

Est-ce que access est effectivement la bonne solution? (sachant, de surcroît, que je dois reproduire la manœuvre plusieurs fois pour des années différentes...).


Si, toutefois, une aide complète serait trop longue à fournir, peut-être qu'un aiguillage vers des aides access me serait profitable. J'ignore tant l'environnement access que je ne sais pas quel mot clefs mettre dans l'index de l'aide pour trouver réponse à mes questions.


Merci mille fois à ceux qui me lanceront une bouée de sauvetage.


Cordialement.
Dizzy84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 14h12   #2
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Bonjour,

Citation:
Envoyé par Dizzy84 Voir le message
Le problème intervient lorsque ma liste de villes n'est plus constituées de 4 villes mais de 1236 villes ce qui fait pas moins de 763230 distances à calculer....
Il serait peut-être plus simple de gérer les coordonnées XY des villes et de calculer les distances à partir de ces coordonnées. Quitte à aller chercher ces coordonnées sur Internet.

Citation:
Envoyé par Dizzy84 Voir le message
Est-ce que access est effectivement la bonne solution? (sachant, de surcroît, que je dois reproduire la manœuvre plusieurs fois pour des années différentes...).
Oui, il est certain que Access devrait vous permettre de gérer ceci bien plus facilement qu'Excel. mais il est vrai qu'Access demande des connaissances un peu plus poussées qu'Excel, notamment au niveau basique.

Personnellement, je créerai une table qui contiendrait les champs suivants :
Ville
CoordonnéeX
CoordonnéeY
Population1950
Population1960
Population1970
...

Je gérerai ensuite les différents calculs à travers les requêtes.

Cordialement,
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 15h27   #3
Invité de passage
 
Gilles Plattner
Inscription : avril 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Gilles Plattner

Informations forums :
Inscription : avril 2010
Messages : 4
Points : 0
Points : 0
Vous voulez dire que Access sait calculer une distance à partir de coordonnées X et Y ????

ca serait génial!


Ceci dit, j'ai déjà calculé les distances à l'aide d'un autre logiciel (si j'avais su qu'Access pouvait faire ça, je m'y serais mis plus tôt). Cet autre logiciel m'a rendu les résultats sous forme de fichiers .CSV

Depuis ce matin, en bidouillant, j'ai réussi à intégrer ces fichiers sous Access. J'ai donc une table Access intitulée "T_Distance" avec les champs suivants (pour l'année 1950 uniquement, pour l'instant)

Champ 1 : clef primaire (ne sachant pas trop ce que c'est j'ai accepté lorsque access m'a proposé d'en mettre une)
Champ 2 : Ville1
Champ 3 : Ville2
Champ 4 : Distance Ville1-Ville2

Maintenant ça se corse.

Dans l'idée que ça pourrait m'être utile, j'ai créé une autre table ("POP_TOT") indépendante, avec seulement les villes et les populations pour chaque année. Elle se présente comme suit:
Champ 1: clef primaire (là aussi, sans savoir pourquoi particulièrement)
Champ 2: Nom de la ville
Champ 3: Population en 1950
Champ 4: Population en 1960
ainsi de suite jusqu'à
Champ 8: Population en 2000

Je voudrais faire le calcul suivant: Au sein de la table "T_Distance", additionner les valeurs de populations des champs 2 (Ville1) et 3 (Ville2) et multiplier le résultat par le champ 4 (Distance ville1-Ville2). Or, dans ces champs 2 et 3, il n'y a que les noms des villes et non pas leur population. Cette donnée est contenue dans la table "POP_TOT".

Il faudrait donc aller chercher l'information sur la valeur de population dans la table "POP_TOT", faire l'addition et la multiplication et renvoyer le résultat dans un nouveau champ de la table "T_Distance". Puis recommencer l'opération pour les lignes d'en-dessous.

Je continue de bidouiller dans mon coin, bien évidemment, si cependant, quelqu'un a des idées pour me faire avancer plus vite, je prendrais ses suggestions avec grand plaisir et soulagement!

Merci
Dizzy84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 15h34   #4
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Citation:
Envoyé par Dizzy84 Voir le message
Vous voulez dire que Access sait calculer une distance à partir de coordonnées X et Y ????

ca serait génial!
A vrai dire, c'est un calcul à définir. Mais de manière générale, la distance entre 2 points de coordonnées (X1,Y1) et (X2,Y2) se calcule ainsi : RACINE( (X2-X1)² + (Y2-Y1)² ).
Si vous disposez de coordonnées GPS, une simple recherche Google sur "calculer la distance entre 2 coordonnées GPS" devrait vous donner la formule.
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 16h19   #5
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Citation:
Envoyé par Dizzy84 Voir le message
Je voudrais faire le calcul suivant: Au sein de la table "T_Distance", additionner les valeurs de populations des champs 2 (Ville1) et 3 (Ville2) et multiplier le résultat par le champ 4 (Distance ville1-Ville2). Or, dans ces champs 2 et 3, il n'y a que les noms des villes et non pas leur population. Cette donnée est contenue dans la table "POP_TOT".

Il faudrait donc aller chercher l'information sur la valeur de population dans la table "POP_TOT", faire l'addition et la multiplication et renvoyer le résultat dans un nouveau champ de la table "T_Distance". Puis recommencer l'opération pour les lignes d'en-dessous.
Mmmmh, vous utilisez mal Access. Access est une base de données, ce n'est pas un tableur excel. L'utiliser comme un tableur n'est pas une bonne idée.
Dans les tables, il ne faut garder que les données de bases, à savoir les villes, la population suivant les années et les distances (si vous ne voulez/pouvez pas passer par des coordonnées).
Tous les champs calculés ne doivent pas être stockés comme données dans les tables. Vous devez utiliser des requêtes pour vos champs calculés. Une requête est une interrogation faite sur les données de bases (à base de filtres ou critères) dans laquelle on rajoute ses calculs.
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 18h24   #6
Invité de passage
 
Gilles Plattner
Inscription : avril 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Gilles Plattner

Informations forums :
Inscription : avril 2010
Messages : 4
Points : 0
Points : 0
ok, Je vais essayer de faire comme vous dite. merci beaucoup en tout cas.
Dizzy84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h28.


 
 
 
 
Partenaires

Hébergement Web