banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 16 February 2011 14:49

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

[Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bonjour,

Je suis confronté à un léger problème. Et il se trouve que l'explication du problème ne va pas être simple selon moi...

Je voudrais réaliser une requête dans Access.
Je m'explique. J'ai 2 tables : une table Flore et une table Flore_générale.
Je voudrais réaliser une jointure entre ces 2 tables.
Elles ont un champ commun (un nom latin d'espèce). Je voudrais donc réaliser la jointure sur ce champ.

Le problème, c'est que pour renseigner le champ Nom dans la table Flore, j'utilise une liste déroulante basée sur la table Flore_générale afin d'avoir l'exacte orthographe.

Cependant, ce qui m'intéresse, c'est de pouvoir, à l'aide de ce nom commun, avoir accès à d'autres infos de la table Flore_générale, comme les statuts de rareté par exemple. En gros, pouvoir associer le champ Statut de rareté présent dans la table Flore_générale à ma table Flore.

Or, le problème, c'est que j'ai l'impression que le lien sur le nom de l'espèce ne fonctionne pas...est-ce à cause de la liste déroulante ?

J'espère avoir été assez explicite.
Pouvez-vous m'aider SVP ?

Bonne journée

Hors ligne

 

#2 Wed 16 February 2011 18:21

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: [Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bonjour,

Effectivement un peu confus. Première chose avez vous créer un lien explicite entre les deux tables ? cad avez vous une jointure dans le modèle.

Si ce n'est pas le cas créer une jointure avec des nom=chaîne de caractères c'est une très mauvaise pratique, mais quand on n'a pas d'autre solution (cad qu'on a mal modéliser au départ) il faut faire avec. Le fait de la liste déroulante ne me paraît pas a priori un pb. La question est plutôt dans le sens de la jointure et sa cardinalité. ESt-ce que la table flore générale comporte des doublons sur le champs nom commun ? (si comme je le pense folre générale est le coté 1 de la relation). Bref il ya a plein d'inconnue dans votre explication.
D'une manière ou d'une autre il existe toujours une solution plus ou moins élégante. Au pire vous faite une requête sur la table flore avec une condition WHERE nom_commun="toto" vous enregistrez cette requête puis vous basez une deuxième requête incluant la première et la table flore générale.

Un peu plus de précision permettra d'apporter une réponse plus précise.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#3 Thu 17 February 2011 18:37

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: [Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bonsoir,

Merci pour la réponse.
Alors effectivement, c'est un peu confus, mais je viens de récupérer la base, qui a été créée par une autre personne.

Concernant la 1ère question, le lien explicite entre les 2 tables : vous parlez de l'outil Relations ? Si c'est çà, non il n'existe aucun lien.

Ensuite, concernant la jointure sur des chaines de caractères, je suis tout à fait d'accord. Mais aucun identifiant dans ces tables. Ou sinon, il faudrait les créer.
La table Flore générale ne comporte aucun doublon sur le champ Nom.

Est-ce qu'il est possible du coup de créer un identifiant unique pour chaque espèce (Nom) de la table Flore générale et de renseigner également ce champ ID_espèce dans la table Flore ?

Merci

Dernière modification par Razorbak (Thu 17 February 2011 18:41)

Hors ligne

 

#4 Thu 17 February 2011 19:42

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: [Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bonjour,

vous parlez de l'outil Relations ?


Oui. Bon ben c'est pas plus mal qu'il n'y ai pas de jointure

La table Flore générale ne comporte aucun doublon sur le champ Nom.


Un bon point

Est-ce qu'il est possible du coup de créer un identifiant unique pour chaque espèce (Nom) de la table Flore générale et de renseigner également ce champ ID_espèce dans la table Flore ?


Via l'interface d'ACCESS je ne sais pas. Via du code c'est facile. Pour finasser un peu le champ Id_Nom (ou espèce) sera dans la table Flore générale (Incrément auto entier long clef primaire). Dans la table flore vous aurez un champs PTR_Nom (pointeur vers nom) entier long avec doublons (coté n de la relation). Un bon nommage c'est éviter les confusions.

C'est quel format de base access 97/2000 ou 2007. Possédez vous un truc du genre visual studio ?
Ou un VB.Net express édition (c'est téléchargeable gratuitement sur le web) ?


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#5 Fri 18 February 2011 08:47

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1159

Re: [Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bjour,
apparemment après un rapide test, si on rajoute un champ incrémental (numéroauto) dans une table, le champ est rempli automatiquement (à noter qu'Access ne permet qu'un seul champ de ce type par table)
.
Pour le reste, comme le dit mon éminent collègue, c'est possible par le code, je crois qu'il y a aussi moyen de passer par une macro.
Sinon y'a la manière brute, une requête du genre :

Code:

Update flore Inner join on flore.nom_commun = flore_générale.nom_commun 
set  flore.ptr_flore = flore_générale.id_flore ;

pour défricher un peu le tout, puis parcourir la table à la main pour effectuer les modifs qui n'ont pas pu être faite par la requête ( si le nombre d'enregistrement le permet).

Hors ligne

 

#6 Fri 18 February 2011 09:10

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3197
Site web

Re: [Access 2007] Requête basée sur un champ basé sur une liste déroulante

Bonjour,

mon éminent collègue


Que ne faut-il pas écrire pour être bien vu du chef !!!
C'est Vendredi wink


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB