Concatener 2 champs provenant de 2 tables

Résolu/Fermé
Signaler
-
 andromedor -
Bonjour,

J'ai crée une base de donnée avec les tables suivantes:

Clients (dispose des champs IdClient, NomClient)
Colaborateurs (dispose des champs IdColaborateur, NomColaborateur)

Contacts (dispose des champs IdContact, NomduContact)

L'un des champs dans la table contacts s'appelle entreprise. Ce champ peut accepter une entrée texte de type IdClient. J'ai lié les 2 tables Clients et Contacts puis je crée une liste déroulante dans le champ IdClient de la table Contact qui va chercher les valeurs du champ IdClient dans la table client:

SELECT [IdClient], [NomClient] FROM Clients ORDER BY [NomClient];

Jusqu'à la tout fonctionne très bien.

J'aimerais maintenant savoir comment puis-je ajouter a cette liste une instruction du type:
SELECT [IdColaborateur], [NomColaborateur] FROM Colaborateur ORDER BY [NomColaborateur];
C'est à dire pouvoir concatener ou aditionner les 2 expression (IdClients et IdColaborateurs sont du même format) pour avoir dans un même liste l'ensemble des clients + colaborateurs. Est-ce possible? Est-il possible aussi de créer une liaison entre la liste Contacts et Colaborateurs dans la table de liaison pour maintenir une intégrité référentiel?

Je vous remercie beaucoup pour votre aide.

3 réponses

Messages postés
23778
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 novembre 2021
3 147
Salut,

1 - Tu peux faire une requête UNION, c'est la somme de deux requêtes
2 - On peut créer une relation, mais il faut déjà savoir ce que tu souhaites faire
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Salut,

J'avais oublié:

Contacts (dispose des champs IdContact, NomduContact, IdEntreprise)

Clients (dispose des champs IdClient, NomClient)
Colaborateurs (dispose des champs IdColaborateur, NomColaborateur)

Dans le champs IdEntreprise je veux créer une liste qui me permet de choisir une valeur parmis tous les IdClient et les IdColaborateur.

En plaçant dans l'édition de la table une liste déroulante dans ce champ et l'instruction :

SELECT [IdClient], [NomClient] FROM Clients ORDER BY [NomClient] UNION SELECT [IdColaborateur], [NomColaborateur] FROM Colaborateur ORDER BY [NomColaborateur];

j'obtiens ma liste concatener et ordonnée par ordre alphabétique. MERCI BLUX!!

Voila donc la deuxième étape ou j'ai besoin d'aide:
J'ai pour le moment dans la table des relations une relation qui a 1 Client peu associer une infinité de Contacts (relation entre Id Entreprise de la table Contacts et IdClient de la table Clients). J'aimerais créer en même temps une relation du même type entre IdContact et IdColaborateur. Ceci est-il possible? A priori quand je crée une relation basique il n'y a pas de problèmes. Cependant lorsque je tente de mettre l'option "exiger l'intégrité référentiel" et "actualiser en cascade", j'obtient le message d'erreur: Les données de la table Contacts enfreigne les règles d'intégrité référentiel. Si je laisse donc ma relation simple (sans définir les options d'intégrité), lorsque je vais dans la création d'un enregistrement pour la table Contacts, je peu choisir dans une liste déroulante créée précédement une valeur parmis les IdClients et IdColaborateur MAIS Access ne m'autorise pas a entrer une valeur de IdColaborateur et me dit "il n'y a pas de registre relationné dans la table Clients"... Ceci me parait normal à cause de la relation entre IdEntreprise (table Contacts) et IdClient. Cependant y a-t-il un moyen de remédier à ceci?

En résumé ce que j'aimerais faire c'est dire à Access que le champ IdEntreprise de la table Contacts puisse prendre les valeurs de IdClients ou bien de IdColaborateurs. Et que quand je modifie les champs des tables Clients ou Colaborateurs, les changements se répercutent dans ma table Contacts ("option actualiser les données en cascade").

Merci bien
Messages postés
23778
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 novembre 2021
3 147
Quelles sont les clés primaires de la table contact ?
Id Contact est la cléf primaire.

En fait les tables Clients et Colaborateurs ont exactement le même structure et je pourrais remplacer ces deux tables pour n'en avoir plus qu'une (et rajouter peut-être un champ dans lequel je mettrai si il s'agit d'un client ou d'un colaborateur). Cependant je préfère séparer mes deux tables tout en permettant à la table Contact d'interagir avec les deux autres tables comme si elle ne formaient qu'une seule table). Je ne sais pas si je suis très clair...

Merci pour ta réponse.