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

IHM Discussion :

Deux champs différents dans une même colonne [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut Deux champs différents dans une même colonne
    Bonjour,

    Je suis actuellement en stage dans le cadre de ma deuxième année de DUT Informatique et je dois réaliser une application Access pour l'entreprise. Cependant, je n'en ai jamais fait auparavant et je rencontre donc quelques difficultés.

    J'aimerais savoir s'il est possible d'afficher deux champs différents dans une même colonne. Dans mon cas, j'ai deux tables "Compétences" et "Modules" qui contiennent les mêmes champs "code" et "libellé". J'aimerais, pour les deux tables, obtenir un formulaire avec une seule colonne code et une seule colonne libellé.

    Je vous remercie d'avance pour votre aide.

    Cordialement,
    Prettyletter

  2. #2
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Dans la requête source de ton formulaire, il faut afficher tes 2 tables "Compétences" et "Modules" liées par un ID unique.
    c'est par exemple une colonne contenant le n° des dossiers qui sont identiques dans les 2 tables (champ n° auto)

    Ensuite dans le champ concerné : ColonneLib : [code] & " - " &[libellé]

  3. #3
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut
    Je me permet de remonter le sujet car j'ai trouvé une astuce qui pourrait peut-être fonctionner mais ce n'est pas encore ça.

    Comme les enregistrements ne peuvent pas être à la fois des compétences et des modules, j'ai effectué une concaténation dans la sélection. C'est-à-dire que, en prenant pour exemple les libellés, j'ai fait la sélection suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MODULES.[libelle] & "" & COMPETENCES.[libelle] AS [libelle]
    Cela à l'air de fonctionner puisque dans mon formulaire, Access me propose automatiquement les noms que j'ai donné en alias. En revanche, lors de l'affichage, j'ai de très beaux #Nom? qui s'affichent partout.
    Ce qui me pose problème avec cette méthode, c'est qu'il faut bien attribuer pour chaque champ celui qui est affecté lors d'une modification. Et je dois obligatoirement choisir MODULES.[libelle] OU COMPETENCES.[libelle], or cela dépend de l'enregistrement en question...

    Je ne sais pas si j'ai été clair, j'attends avec impatience vos réponses.


    Edit :

    Merci pour ta réponse, sendme.

    En fait, les enregistrements dans mes deux tables ne sont pas identiques, elles ont simplement les mêmes intitulés de colonne. Elles possèdent les mêmes types de données mais ne sont pas enregistrées dans une même table.
    Je souhaiterais "mélanger" les deux tables pour n'en former qu'une seule.

  4. #4
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    N'ayant toujours pas trouvé de solution, je relance la discussion.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Peux tu préciser ?
    Bonjour,

    J'avoue ne pas comprendre ton problème... et je souhaiterais donc qq précisions pour tenter de t'aider (sans garantie !).

    J'imagine que le champ "Code", dans les deux tables est celui qui va te permettre d'établir une relation entre les deux tables (qui donc doivent contenir des (ou quelques) codes identiques que l'on va retrouver dans l'une et l'autre table) et que seuls les libellés diffèrent pour un même code présent dans les 2 tables... est-ce bien cela ?

    style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Table1
    Code   = "00001"
    Libelle  = "Libellé 1"
     
    Table2
    Code   = "00001"
    Libelle  = "Libellé 2"
    Si c'est bien cela que veux tu faire exactement ?

    - une requete dont le résultat concatène pour un même code les champs "libellés" des deux tables ? Ce qui donnerait ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Code : "00001"
    Libellé : "Libellé 1 - Libellé 2"
    - un formulaire de saisie et/ou d'affichage issu de cette requête ?

    - Peux tu montrer une partie du code que tu as fait pour cela et qui ne fonctionne pas, ou un exemple simplifié (comme j'ai tenté de le faire ci-dessus) ?

    Merci pour les éventuelles précisions
    Michel

  6. #6
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut
    Bonjour et merci pour ta réponse.

    En fait, mes deux tables ne sont pas en relation. J'ai une table Modules comprenant les champs "ID", "CODE" et "LIBELLE", et une table Compétences comprenant les trois mêmes champs mais n'ayant aucune relation entre eux. Je souhaiterais obtenir un tableau où Compétences et Modules seraient mélangés. Trois colonnes ID, CODE et LIBELLE pour deux tables.

    Après, peut-être que c'est impossible...

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Peur être une solution de contournement du problème ?
    Si je comprends bien tes 2 tables ont la même structure mais des données différentes et si cet ensemble constituait une seule et même table tu résoudrais sans doute ton problème.

    Partant de cela (si pas d'erreur d'interprêtation de ma part), tu pourrait créer une 3° Table à la structure strictement identique et en début de traitement

    1 - Tu crées une requete "Ajout" de la Table "Commentaires" vers la nouvelle table ... et tu l'exécutes
    2 - Tu crées une requete "Ajout" de la Table "Modules" vers la nouvelle table ... et tu l'exécutes
    3 - Tu fais les traitements que tu voulais faire avec tes 2 tables mais à partir de la nouvelle table.
    4 - Ces traitements étant terminés, tu vides la nouvelle table en vue de t'en resservir de la même manière lors du prochain traitement.

    En terme de programme cela pourrait donner un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Ajout_Commentaires_Dans_Résultat", acViewNormal,acEdit
    DoCmd.OpenQuery "Ajout_Modules_Dans_Résultat", acViewNormal,acEdit
    '
    'TON TRAITEMENT S'EXECUTE ICI
    '
    DoCmd.OpenQuery "Suppression_Contenu_Resultat", acViewNormal,acEdit
    DoCmd.SetWarnings True
    La nouvelle table dans l'exemple ci-dessus se nommant "Résultat" ... et les requêtes appelées étant censées exister.

    Michel

  8. #8
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut
    Oui c'est exactement ça, les données pourraient tout aussi bien être dans la même table mais elles ne le sont pas car ce ne sont pas les mêmes données. Je pense que cette solution serait trop lourde car j'ai beaucoup d'enregistrements dans ces tables.. Il n'existe pas de solution pour les afficher l'une après l'autre, par exemple? Ou avec l'attribut UNION en SQL?

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut suffisait de demander.
    Je crois que c'est donc ceci que tu souhaites ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Modules.* FROM Modules UNION SELECT Commentaire.* From Commentaire

    Michel

  10. #10
    Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 56
    Points
    56
    Par défaut
    C'est bien ça, merci!

    Maintenant, c'est un détail, mais est-il possible avec un attribut UNION de trier d'abord la première requête PUIS la deuxième?
    Je voudrais que tous les modules soient d'abord affichés par ordre croissant (identifiant) et qu'ensuite soient affichés les compétences par ordre croissant. J'ai mis une clause ORDER BY sur chaque requête mais ça fait un tri général sur les deux tables.

  11. #11
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Ajoutes un champ ordre valorisé à 1 dans la 1ère requête et à 2 dans le seconde et fait un tri double sur ce champ + l'Id.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Avoir de cellule de types différents dans une même colonne
    Par mehdiing dans le forum Composants
    Réponses: 1
    Dernier message: 14/06/2011, 18h02
  2. [MySQL] Permutation de deux valeurs dans une même colonne de table
    Par andry.aime dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2009, 13h19
  3. [BO XI] Variable différente dans une même colonne
    Par FloLens dans le forum Deski
    Réponses: 6
    Dernier message: 16/04/2008, 16h36
  4. Deux formulaires différents dans une même page
    Par zabdaniel dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2008, 20h31
  5. [Débutant]Deux Threads différent dans une même classe?
    Par nicofromChina dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 26/01/2007, 15h58

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