1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Problèmes Access des débutants
Sujet n° 656 |
Regrouper 2 colonnes en une sans doublon |
le 13/01/2013 : 18:35 par SERGE
visiteur |
Bonjour et merci par avance, je suis sur access 2007 et je souhaite a partir de plusieurs colonnes texte d'une table, les réduire en une seule. je m'explique, j'ai actuellement : date --- dép Esp ---- détail dép Esp --- dép CB --- détail dép CB - 01/01/13 10€ timbres 30€ gasoil 02/01/13 20€ agrafes 40€ gasoil je voudrais que les 2 colonnes details Esp/CB se réduisent en une seule colonnes comme suit --- détail dépense --- timbres gasoil agrafes j'espère avoir été a peu près clair et encore merci pour votre aide |
|
|
Réponse n° 1 -------- le 13/01/2013 : 23:41 par 3Stone
Administrateur
|
Bonjour, j'espère avoir été a peu près clair
Clair, pas vraiment Déjà, si je comprends plus ou moins ce que tu as fait... cela n'as pas grand chose à faire avec une base de données, mais plutôt organisé comme une feuille d'un tableur (ce qui est très mauvais pour une base). Le données ne se range pas horizontalement, mais bien verticalement.
Ceci dit, pour concaténer la valeur de 2 champs textes, il suffit de faire cela dans une requête via une champ calculé... sans toucher à la table. Donc, dans la requête on fait quelque chose comme ceci.
Dans une colonne vide (donc dans le requêteur graphique) on écrit : NouveauChamp: [champ1] & [champ2]
Pour obtenir un espace entre les deux valeurs, on fait : NouveauChamp: [champ1] & " " & [champ2]
Cordialement, Pierre(3stone) |
|
|
Réponse n° 3 -------- le 14/01/2013 : 16:03 par 3Stone
Administrateur
|
Bonjour, Citation : Serge
j'ai créer une table "dépenses" avec pour colonnes : "date" , "espèce"
et "chèques" "CB"... Ainsi que des colonnes texte pour le détail de
chaque dépenses pour en connaitre l'origine:"detail espèce" , "detail
chèque" et "détail CB"
Comme dit, c'est exactement ce qu'il ne faut pas faire ! Cette manière est courante dans un tableur, mais un enfer dans une base de données. Pour comprendre les problèmes insolubles que cela entraîne, il faut absolument lire et appliquer les conseils et méthodes des pages suivantes.
Ta table devrait donc d'abord être scindée en deux tables et s'approcher de quelque chose comme la description suivante. Les
types de payement ne doivent pas représenter des colonnes mais des
lignes dans une table "T_TypePayements" avec les champs "ID_TypePaye"
clé primaire qui sera clé externe dans la table des dépenses,
"TypePayement" qui contiendra le nom du type comme Espèses, Chèque,
Carte banquaire et le champ "TypeDescription" qui contiendra les infos
supplémentaires relatifs aux chèques ou cartes...
La seconde table "T_Payements" contiendra alors au moins les champs suivants. ID_Depense, clé primaire numéroauto DateDepense, champ date TypePayement, champ numérique et clé externe (contiendra la clé primaire de la table T_TypePayement. ValeurPayement, champ monétaire qui contiendra le montant DestinationPayement, champ texte pour la description de la dépense...
D'autres champs sont possibles, ainsi que l'adaptation des noms, bien sûr...
Cette
manière de construire les tables permet alors d'utiliser une simple
requête pour extraire tous les payements souhaités: que ce soit les
sommes totales, par type de payement, par mois ou année, etc. Pour
encore plus affiner les possibilités, on peut y ajouter une table des
créanciers pour minimiser les saisies et faire simplement des
regroupements par créance.
La lecture conseillée plus haut éclaircira la nécessité de la méthode.
Cordialement, Pierre(3stone) |
|
|
Réponse n° 5 -------- le 15/01/2013 : 14:55 par SERGE
visiteur |
Si ca peut intéresser quelqu'un j'ai fini par trouver. Créez une requete en mode SQL SELECT [Champ_A]FROM [Table_X]UNION SELECT [Champ_B]FROM [Table_X]UNION SELECT [Champ_C]FROM [Table_X]; Il est aussi possible de regrouper des champs de tables différentes. |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|