{Access} Concaténation de champs

Djo -  
 Djo -
Bonjour,

J'ai une table à 3 champs. Je souhaiterais que l'un des champs soit (par défaut lors de la saisie d'un enregistrement) égal à la concaténation des 2 autres.

Je souhaiterais le faire le plus simplement du monde (sans VBA, sans SQL si possible mais seulement avec ce que propose Access). Comment procéder ?

Merci d'avance.

Djo

A+

20 réponses

moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
dans ton formulaire clic droit propriete et onglet donné tu vas voir source control
3
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
essaie ds la valeur par default ou source control :
=[champ1]&[champs2]
1
Djo
 
Merci.

valeur par défaut : fonctionner pas

source control : qu'est-ce ?
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
je vien de test cela fonctionne si tu as besoin d' un espace ajoute un & " " & entre les 2






















&
0
Djo
 
Bonjour,

Oui effectivement cela fonctionne mais je rencontre un autre problème qui est lié.

En fait j'ai une table "Document". Chaque document est identifié de façon unique avec une référence et une issue.
Si je crée 2 clef primaires sur les champs référence et issue, cela me pose des problèmes pour les relations entre tables par la suite. Par contre avec une clef primaire => pas de problème (déjà ça je ne comprends pas pourquoi 2 clefs primaires posent des problèmes à Access pour les relation enfin bref si vous pouvez expliquer ce sera avec plaisir que j'essaierai de comprendre)

Donc mon idée était de créer trois champs : référence, issue, référence_issue (concaténation des 2 premiers champs) et d'attacher la clef primaire à ce dernier champs.
Or lorsque je saisie les données dans le formulaire, la concaténation se fait bien dans le champs refercence_issue mais lorsque je souhaite sauvegarder l'enregistrement, il me dit que le champs reference_issue ne peut pas contenir de valeur null (normal c'est une clef primaire) alors qu'il est bien rempli avec la concaténation des 2 premier (via le source control : =reference & " Issue " & issue)

Peut-être que je procède mal dès le départ ?
Merci de votre aide.

A+
Djo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
bonjour


le plus adapté a ta situation est de creer une requete de mise a jour

ton champ référence_issue tu ne met rien en soirce controle

met tu crait une requete de mise a jour qui dis que :


référence_issue = reference & " Issue " & issue)
0
Djo
 
Bonjour,

Je début complètement en Access.

Comment faire ?
Est-ce que ca va être une requete SQL ?

Je pense que le problème se pose souvent lors de la création d'une base de donnée.
Comme procédez-vous quand une table liée a des enregistrements identifiés par 2 champs ? la bonne solution est-elle bien d'en créer un 3eme ?

Merci.

A+

Djo
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

deux champs composant une seule clé primaire sont parfaitement gérés par ACCESS, et recommandés en lieu et place de la concaténation des deux champs pour une seule clé, qui est une aberration au sens base de données...
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
Une requete de mise a jour basique ds access fonctionnera parfaitement ton 3 eme champs ds mise a jour tu met = 1ER + 2eme
0
Djo
 
Merci moiced59 mais je préfère l'approche de blux qui fait...moins gadget...

Blux, peux-tu m'indique comme je dois préciser à Access de ne faire qu'une clef à partir de 2 champs ?

Merci d'avance.

A+
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
tu sélectionnes les deux champs en même temps et tu cliques sur l'icône clé ;-)
0
Djo
 
Bonjour,

Merci blux.
Si je fais ce que tu me dis : il me crée une clef primaire par champ.

et donc comme je disais dans un précédent message :
Si je crée 2 clef primaires sur les champs référence et issue, cela me pose des problèmes pour les relations entre tables par la suite. Par contre avec une clef primaire => pas de problème (déjà ça je ne comprends pas pourquoi 2 clefs primaires posent des problèmes à Access pour les relation enfin bref si vous pouvez expliquer ce sera avec plaisir que j'essaierai de comprendre)

Merci A+
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
il me crée une clef primaire par champ
Non, il affiche le symbole 'clé primaire' devant chaque champ qui la compose, nuance ;-)
0
Djo
 
VVVVoui mais (parce qu'il y a un mais) :

Dès lors que j'ai une clef composée j'ai un problème entre mes données liées je m'explique.

Table A : 1 champ "identifiant"
Table B : 2 champs "référence" et "issue"

Si j'établi les relations telle quelle (c a d avec une clef composée) j'ai le comportement suivant :
De la table B : lorsque je développe (à l'aide du petit + à gauche de chaque enregistrement) les données liées (les données de la table A) il me liste TOUS les rengistrements de A à chaque enregistrement dans B !!

Si je n'ai pas de cef composée, il le liste seulement (et c bien ce que je veux) les enregistrements de A réellement liés à l'enregistrement concerné dans B.

Pourquoi réagit-il comme ça ?? il se perd avec une clef composée ???
Comment y remédier ?

Merci
A+
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Quelles sont les relations que tu as établies ? As-tu mis une intégrité référentielle ?

J'ai fait ce genre de truc (ou approchant) des dizaines de fois, sans souci. Peut-être un problème dans la modélisation de la base ?
0
Djo > blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui j'utilise l'intégrité référentielle et la mise à jour en cascade...

Je t'enverrais bien des images mais comment faire ?? je crois que je ne peux même pas t'envoyer mon adresse mail sous message privé...
0
Djo
 
Pardon tu m'as demandé de décrire les relations établies :

Table A liée à Table B par une liaison type "plusieurs à plusieurs". J'ai donc crée une table C de liaison entre la A et la B. la C contient les liaisons (enregistrement 1 de la table A et lié à l'enregistrement 2 et 3 de la table B etc...)

Suis-je-clair ?

Peut-être devrais-je exposer mon problème de base :
J'ai une table Produit et une table Non conformité
Un produit n'a pas forcément de Non conformité mais peut aussi en avoir plusieurs
Une Non conformité est quant à elle forcément liée à au moins 1 produit.

Voilà ce que j'essaie de faire.

Merci A+
0
Djo
 
Parce que pour préciser un peu : je pars du principe que la table de liaison (la table C) ne doit pas être remplie par l'uitlisateur.
Je par effectivement du principe que l'utilisateur de remplit que les tables directes (à la reception d'une non conformité, il va saisir dans la tables (bientôt le formulaire) non conformité et pas ailleurs. On est d'accord ?

En fait les données dont je parlais tout à l'heure (lorsque je développe (à l'aide du) les données liées (les données de la table A) il me liste TOUS petit + à gauche de chaque enregistrementles rengistrements de A à chaque enregistrement dans B !!) ça c'est valable lorsque je fais Insertion -> sous feuille de données.

Mais à la base je n'ai pas du tout de petit + dans ma tables à clef composée. Je ne l'ai que dans la table à clef simple.

Merci
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
donc, une relation de n à n se simplifie par une table intermédiaire dont la clé primaire est la concaténation des clé primaires des deux tables rattachées dans une relation 1-n.

tu peux coller une copie écran de tes relations sous cjoint.com ?
0
Djo
 
Voici la relation :
https://www.cjoint.com/?lesUZNPjut

Je suis vraiment débutant ça se trouve je fais une gourde grosse comme moi...

Merci A+
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Rien de choquant pour moi dans la construction des données.

Le souci que tu évoques semble sans doute lié au + qui a un comportement étrange.

Tes tables sont elles remplies ?
0
Djo
 
Pour dire la vérité en fait j'utilise Toad Data Modeler pour créer la structure de ma base et cet outil me genère du code VBA que j'exécute ensuite et qui me crée la structure de toute mes tables, les relations etc...
Je pense qu'il doit y avoir une option qui fout la merde.

Si pour toi rien de choquant...alors je comprends pas.

As-tu déjà utilisé Toad ?

A+
0
blux Messages postés 27144 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Voui, mais pas sur access...

Ton souci, c'est juste un problème dans l'affichage ? gère toi-même les formulaires et tu verras que tu ne seras plus obligé de te poser des question existentielles.

Si ton modèle de données est correct, alors, il n'y quasiment aucune limite à la gestion par access.
0
Djo
 
OK merci.

Je vais me mettre au formulaire et ne pas faire attention à la forme au niveau table.

Maintenant il faut que je comprenne quand faire des requêtes etc...

Merci Blux.

A+
0