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

Requêtes et SQL. Discussion :

Comment créer un champs avec formule ? [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Femme Profil pro
    Experte agréée en gestion de projet web sur www.webagency321.com
    Inscrit en
    Avril 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Experte agréée en gestion de projet web sur www.webagency321.com

    Informations forums :
    Inscription : Avril 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut Comment créer un champs avec formule ?
    Hello,

    J'ai une table de correspondance sous access contenant 2 champs : "ID" et "Name"

    J'ai besoin de modifier le contenu du champs "Name".

    Pour chaque enregistrement, j'ai besoin d'insérer une suite de caractères avant la valeur actuellement présente dans le champs "Name".
    Cette séquence de caractères qui doit être insérée est composée des 8 premiers caractères contenu dans le champs "ID" du même enregistrement.

    Par exemple, si l'ID contient "12345678_9101112131415" et la valeur correspondant dans le champs "Name" est "Jack_L", j'ai besoin de mettre à jour cette valeur du champs "Name" pour que cela devienne "12345678Jack_L" (car les 8 premiers caractères du champs "ID" sont "12345678". La valeur du champs "ID" ne doit pas être modifiée.

    Les valeurs modifiées devront être stockées en dur car je supprimerai ensuite le champs "Name" initial, ou la table initiale si on a créé une nouvelle table.

    Comment puis-je faire cela?
    J'imagine qu'il faut une requête de création de table, mais je ne sais pas comment rédiger cette formule et à quel endroit l'insérer?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Le périmètre du besoin est un peu confus.

    Pour mettre à jour le champ "Name", il faut utiliser une requête mise à jour ou UPDATE :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TATABLE SET TATABLE.Name=LEFT([Id],8) & [Name]

    Après, si tu veux un nouveau champ à la place de Name, il faut le créer (manuellement) et faire une requête similaire.

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre à l'essai
    Femme Profil pro
    Experte agréée en gestion de projet web sur www.webagency321.com
    Inscrit en
    Avril 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Experte agréée en gestion de projet web sur www.webagency321.com

    Informations forums :
    Inscription : Avril 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Bonjour madefemere,

    Merci pour ta réponse.
    Quand je saisis cette requête dans l'interface SQL (évidemment, je remplace "TATABLE" par le nom de ma table), et que je lance l'exécution, s'ouvre une fenêtre intitulée "Sélectionner la source de données", (et ensuite cela bug).
    Je pense que l'ouverture de cette fenêtre n'est pas normale, donc je dois faire quelque chose mal, mais je ne sais pas quoi ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Peux-tu poster une copie d'écran de l'interface SQL dont tu parles et la copie du SQL en mode création ?

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Membre à l'essai
    Femme Profil pro
    Experte agréée en gestion de projet web sur www.webagency321.com
    Inscrit en
    Avril 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Experte agréée en gestion de projet web sur www.webagency321.com

    Informations forums :
    Inscription : Avril 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Je vais essayer, mais ça plante.

    Je saisis le code dans l'interface "SQL Direct", n'est-ce pas ?

  6. #6
    Membre à l'essai
    Femme Profil pro
    Experte agréée en gestion de projet web sur www.webagency321.com
    Inscrit en
    Avril 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Experte agréée en gestion de projet web sur www.webagency321.com

    Informations forums :
    Inscription : Avril 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    ah ok, j'ai trouvé comment utiliser ton code : ce n'était pas dans SQL Direct que je devais le taper.
    ça marche merci !

    Une question supplémentaire :
    si au lieu d'insérer les 8 premiers caractères du champs "ID", je veux insérer une concaténation des caractères suivants :
    caractère7deID&caractère8deID&caractère5deID&caractère4deID&caractère2deID&caractère1deID

    quelle serait la formule?

    Par exemple, si les 8 premiers caractères de ID sont "12 34 56", la séquence de caractères à insérer serait : "563412"

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-bonjour,

    La concaténation de texte se fait avec le caractère "&".
    Tu as les différentes fonctions "TEXTE" à ta disposition :
    Left(Text,X) => (les X premiers caractères à gauche de TEXT)
    MID(TEXTE, X,Y) => (les X caractères à partir du caractère numéro Y de TEXT)
    et ainsi de suite...

    L'aide t'apportera plus d'informations ou la touche :F1:

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  8. #8
    Membre à l'essai
    Femme Profil pro
    Experte agréée en gestion de projet web sur www.webagency321.com
    Inscrit en
    Avril 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Experte agréée en gestion de projet web sur www.webagency321.com

    Informations forums :
    Inscription : Avril 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Merci de ta réponse.
    Cela dit, il semble qu'il y a une erreur concernant MID : a priori c'est MID(TEXTE, X,Y) => (les Y caractères à partir du caractère numéro X de TEXT)

    Donc la réponse à ma question était :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE CORR1 SET CORR1.Name=MID(Id, 7,2) & MID(Id, 4,2) & MID(Id, 1,2) & [Name]

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

Discussions similaires

  1. Comment créer une userform avec tous les champs du tableau excel
    Par AntoineCompagnie dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/06/2019, 16h18
  2. Réponses: 1
    Dernier message: 07/02/2015, 15h59
  3. Comment créer un champ auto increment avec netbeans
    Par une_tite_question dans le forum NetBeans
    Réponses: 4
    Dernier message: 25/04/2008, 17h17
  4. Comment créer un champs " BOOLEAN " dans ACCESS ?
    Par Didier100 dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/10/2004, 11h15
  5. Comment renommer un champ avec Module BD?
    Par technico dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/01/2004, 21h24

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