[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


clos par 3Stone le 31/05/2013 : 00:09  Sujet n° 656  Regrouper 2 colonnes en une sans doublon

le 13/01/2013 : 18:35
par SERGE

Anonyme

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

Ecrire à SERGE  sujet clos  Haut

[]   

DébutPrécédent [ 1 2 ] SuivantFin
Réponse n° 1
--------
le 13/01/2013 : 23:41
par 3Stone

3Stone

Administrateur

Bonjour,
j'espère avoir été a peu près clair

Clair, pas vraiment wink
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)
  clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 2
--------
le 14/01/2013 : 09:07
par SERGE

Anonyme

visiteur
Bonjour,Je vais tenter d'etre plus clair car en effet "le tableau" dans mon précédent message n'est pas du tout lisible après éditiony.
En fait 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"
Le but est non pas de concaténer, mais de réduire ses 3 colonnes "détail..." en une seule colonne pour en faire ensuite une zone de liste modifiable dans un formulaire, ce qui aura pour conséquence d'avoir tout le contenue des 3 "details..." dans une seule liste et facilitera la saisie.
Exemple si dans chacun des 3 "détail" il y a 5 enregistrements, ma liste modifiable m'en proposera alors 15 ou moins selon s'il y a des doublons ou pas.
Encore merci et désolé si j'ai du mal a m'expliquer  
cordialement
Serge
Ecrire à SERGE   clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 3
--------
le 14/01/2013 : 16:03
par 3Stone

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)
  clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 4
--------
le 15/01/2013 : 13:03
par SERGE

Anonyme

visiteur
Bonjour,Tout d'abord merci Pierre pour le temps consacré à tes réponsesj'ai essayé ce dont tu m'a proposer et je ne sait pas si j'ai tout bien saisi, mais ca ne semble pas correspondre a ma recherche.j'ai bientot fini ma base de données (reste que la présentation) et je pense que je vais abandonner ce mode de saisie.encore merci 
cordialement
Ecrire à SERGE   clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 5
--------
le 15/01/2013 : 14:55
par SERGE

Anonyme

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.
Ecrire à SERGE   clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 6
--------
le 15/01/2013 : 15:14
par 3Stone

3Stone

Administrateur

Bonjour,
 
Citation :

Si ca peut intéresser quelqu'un j'ai fini par trouver.

 
Il faut éviter les mauvais conseils wink
Une requête union ne corrige pas une base mal, voir très mal réalisée.

La seule bonne méthode est de corriger la base pour ne pas avoir le même problème pour la prochaine recherche.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 7
--------
le 15/01/2013 : 16:14
par SERGE

Anonyme

visiteur
Concernant le "très mal réalisée", j'ai bien tenté de suivre ton exemple Pierre mais j'ai du mal a comprendre ta démarche, de plus tu m'a collé un champ numérique pour des renseignements "texte" ???
Concernant mes "conseils" qui n'en sont pas, ils ne sont pas en  rapport a ce que j'ai mal réalisée mais plutot concernant le début du sujet "comment Regrouper 2 colonnes en une sans doublon" 
Cordialement
Ecrire à SERGE   clos par 3Stone le 31/05/2013 : 00:09  Haut
Réponse n° 8
--------
le 16/01/2013 : 13:21
par 3Stone

3Stone

Administrateur

Bonjour,
 
Citation :

j'ai bien tenté de suivre ton exemple Pierre mais j'ai du mal a comprendre ta démarche

 
Il ne faut pas tenter, mais lire et recréer ce genre de schéma pour comprendre l’intérêt de faire ainsi.

PS: Ce n'est pas "ma" démarche, mais "la" méthode pour réellement pouvoir utiliser une base de données. Bien sûr, pour quelques dizaine d'enregistrements dans une seule table, on peut aussi bien rester dans un tableur et fait fit de toute les règles.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 31/05/2013 : 00:09  Haut
DébutPrécédent [ 1 2 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut