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 :

Concaténer 3 champs dans un champs


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut Concaténer 3 champs dans un champs
    Bonjour,
    j'ai une table et un formulaire déjà créé. Mais à l'avenir, le formulaire sera complété davantage.
    J'ai 3 champs [N°VR, [Localisation] et [Indice] dans ma table et un dernier [IDENTIFIANT]
    Je souhaite que dans ma table, dans le champs [IDENTIFIANT] soit créé la concaténation suivante : [N°VR] & "-" & [Localisation] & "-" & [Indice]
    Je ne veut pas de cette formule dans le formulaire, il me faut vraiment la concaténation de tout cela dans le champ [IDENTIFIANT]

    Je souhaite également, que lorsque je compléterai le formulaire, ce champs se mette à jour automatiquement dans le formulaire et par conséquent dans la table.

    Pourriez-vous m'aider s'il vous plait, j'ai Access 2007. J'ai trouvé sous Access 2010 car il y a la fonction mais il me faut résoudre ce problème sous Access 2007.
    Merci par avance.

    Bien cordialement

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Dans la propriété événement sur perte focus mettez la procédure suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Identifiant_GotFocus()
    Me!Identifiant = Me!N°VR & "-" & Me!Localisation & "-" & Me!Indice
    End Sub
    Dès la réception du focus par le champ Identifiant il se remplit automatiquement et le champ de la table est remplit également puisque le formulaire est construit sur la table ou sur une requête liée à la table.

    On peut adapter cette procédure pour tester si les trois champs sont bien renseignés et avertir si cen'est pas le cas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut Réponse
    Bonjour,
    merci pour cette réponse. J'ai juste un petit problème avec ela, dans "source de contrôle" dois-je indiquer IDENTIFIANT ? Car en créant une zone de texte dans le formulaire, en faisant cela et en mettant votre macro sur perte focus, cela ne me renvoie rien.

    Merci encore

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    Désolé ce n'est pas sur perte mais sur Réception focus qu'il faut mettre la procédure. D'ailleurs dans la procédure c'est bien GotFocus et pas LostFocus.
    Source du contrôle doit bien contenir Identifiant puisque c'est le nom du champ dans la table.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    merci beaucoup pour ces renseignements. Mais malheureusement, cela ne marche toujours pas. J'ai mis Idnetifiant, créé la procédure évenementielle dans réception focus, et ai remplacé Me! par le nom de ma table, mais rien ne s'affiche et la table ne se rempli pas.
    Sauriez-vous pourquoi?

    Merci encore

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Me! doit être suivi du nom du champ utilisé dans le formulaire et en principe il est identique à celui utiliser dans la table.

    En tout cas chez moi tout fonctionne parfaitement donc c'est que chez vous quelque chose n'est pas correctement écrit dans la procédure surveiller bien l'orthographe des noms des champs.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Alors ça c'est vraiment bizarre....
    Pourriez-vous m'envoyer votre fichier excel que je compare au miens, afin de trouver ce qui ne va pas?

  8. #8
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    J'ai oublié une question importante pour concaténer des champs il faut qu'ils soient tous de type Texte. Si certain ne le sont pas il faut appliquer une convertion.

    Attention cette fonction ajoute un espace devant le nombre
    Str(459) renvoie " 459"
    Le fichier 1 est avec tous les champs au format texte
    Le fichier 2 est avec le champ N°VR de type numérique Entier Long et formaté avec 3 chiffres.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Alors là, je ne comprends vraiment pas comment vous faites, car dans votre fichier, lorsque dans le formulaire j'ajoute une nouvelle ligne où je renseigne N°VR, Localisation et Indice, la case Identifiant ne se remplit pas...

    Vraiment désolé de vous ennuyer encore.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Surtout que je ne comprends pas comment cela peut marcher en écrivant dans la fonction, d'autre part "Me!" alors qu'il n'y a pas de table de ce nom dans votre fichier.

  11. #11
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Vous ne m'ennuyez pas, je fais cela volontairement et si ça m'ennuyait je ne proposerais pas mes services sur le forum. Ceci dit le champ Identifiant ne se remplit que quand il reçoit le focus c'est à dire quand le curseur arrive dedans soit par l'appui sur la touche Tabulation ou Entrée.

    Pour ce qui est de Me! : ce mot clé remplace le nom complet du formulaire ou de l'état dans lequel se trouve le champ concerné par la procédure en cours d'exécution.
    Si le formulaire s'appelle par exemple Frm_Machin et le champ Identifiant, pour l'identifier dans la procédure on peut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![Frm_Machin]![Identifiant]
    ou
    NB: Les [ ] ne sont indispensables que si les noms utilisés contiennent plusieurs mots, c'est pourquoi par exemple je met Frm_Machin au lieu de [Frm Machin], mais on peut toujours mettre les crochets. Si besoin d'autres explications n'hésitez pas.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    D'accord!!! Merci beaucoup, j'ai tout compris. Merci pour votre aide, mais surtout pour vos explications. Ca marche super. Exactement ce que je voulais. Je vais juste maintenant trouver une manière de pas avoir besoin de cliquer dans la cellule.

    Merci beaucoup encore

  13. #13
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Re,

    Si vous exécuter la procédure sur l'évènement Perte du focus du champ Localisation quand vous quitterez ce champ le champ Identifiant se remplira automatiquement et sans click.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Merci. C'est exactement ce que j'ai fait. Votre aide m'a permis de bien comprendre le "focus".

  15. #15
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    pour être sûr de ne pas être bloqué si l'utilisateur remplit le champs Localisation en premier, vous pouvez "recalculer" la concaténation sur la perte du focus des trois champs

Discussions similaires

  1. Concaténer valeur colonne dans un champs
    Par drixon dans le forum QlikView
    Réponses: 2
    Dernier message: 15/03/2013, 17h18
  2. [AC-2007] Concaténer 3 champs dans un champs
    Par arno21600 dans le forum Access
    Réponses: 0
    Dernier message: 06/07/2010, 14h01
  3. concaténation avec string dans un champ bindé
    Par gentel_man dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/05/2010, 16h01
  4. concaténer plusieurs lignes dans un champs
    Par papoulouis dans le forum SQL
    Réponses: 10
    Dernier message: 30/01/2009, 20h08
  5. concaténation de texte dans un champ
    Par Apprenti3 dans le forum Access
    Réponses: 1
    Dernier message: 25/09/2006, 19h37

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