IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Formules et relations de tables sous access


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    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.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    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,

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    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.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 106
    Points : 135
    Points
    135
    Par défaut
    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.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    ok, Je vais essayer de faire comme vous dite. merci beaucoup en tout cas.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/03/2007, 16h00
  2. Réponses: 2
    Dernier message: 07/06/2006, 14h13
  3. [VB6]remplir une table sous access
    Par asyoulike007 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 14/04/2006, 16h47
  4. Réponses: 1
    Dernier message: 21/09/2005, 17h04
  5. Tester l'existence d'une table sous Access
    Par Oluha dans le forum Bases de données
    Réponses: 10
    Dernier message: 29/08/2005, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo