Pages: 1
- Sujet précédent - [Access 2007] Requête basée sur un champ basé sur une liste déroulante - Sujet suivant
#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: 3199
- 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: 3199
- 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: 1160
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: 3199
- 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
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
Pages: 1
- Sujet précédent - [Access 2007] Requête basée sur un champ basé sur une liste déroulante - Sujet suivant