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

Access Discussion :

Ajout de colonnes et écrasement des anciennes


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut Ajout de colonnes et écrasement des anciennes
    Bonjour,

    Alors voilà, j'ai encore un problème, c'est dur d'être débutante

    J'ai une table "Feuil1" avec toutes les coordonnées de mes prospects (NUM, NOM, PRENOM ...), et une autre table "devis" (NUM, PRENOM, NOM, DATE DU DEVIS).

    J'aimerais que ma table "devis" se mette automatiquement a jour avec la table "Feuil1", pour que tout mes prospects soit dans ma table "devis" (cela m'évite une double saisie). Mais mon SQL, rajoute seulement les données mais n'écrase pas les anciennes.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO DEVIS ( NUM, NOM, Prénom )
    SELECT Feuil1.NUM, Feuil1.NOM, Feuil1.Prénom
    FROM Feuil1;

    J'ai essayé une requête de suppression


    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE DEVIS.NUM, DEVIS.NOM, DEVIS.Prénom
    FROM DEVIS;

    Mais le problème est là, c'est que je veux que ça me supprime que mes 3 colonnes et pas les autres informations.

    En gros, je vais saisir ma date de devis et je veux pas qu'elle se supprime quand j'utilise cette requête.

    En faite, je veux juste une mise a jour de mes données.

    Je sais pas si c'est compréhensible la façon dont je l'ai expliquer mais je vous remercie par avance pour votre aide.

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour,pourquoi ne pas essayer update http://sqlpro.developpez.com/cours/sqlaz/dml/ cordialement.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Bonjour kevin254kl,


    Malheureusement, je suis vraiment débutante et je ne comprends pas grand chose.

    Ça ne m'explique pas comment on fais une mise à jour à partir d'une autre table.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    J'ai fais ça

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Feuil1 INNER JOIN DEVIS ON Feuil1.NUM = DEVIS.NUM SET DEVIS.NUM = [Feuil1].[NUM], DEVIS.NOM = [Feuil1].[NOM], DEVIS.Prénom = [Feuil1].[Prénom];

    Mais ça me mets toujours, que ça mettra 0 lignes a jour

  5. #5
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    sur ce lien je pense ça vous aidera http://www.developpez.net/forums/d28...artir-d-table/

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    J'y arrive toujours pas. En faite j'arrive pas a faire comme il a fais mais avec mes propres données

  7. #7
    Expert éminent

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

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

    Pourquoi tu veux dupliquer les informations sur tes prospects dans tes 2 tables ? C'est contraire aux règles d'une base de données. Normalement comme tes prospects ont une identification unique (le champ NUM), à partir du moment où tu as ce champ dans la table devis, tu peux retrouver toutes les informations sur ton prospect.
    Tu n'arrives pas à faire une mise à jour des données parce que tu fais une jointure sur les 3 champs NUM, NOM et PRENOM qui sont différents dans les 2 tables (tu veux mettre à jour les NOM et PRENOM de la table devis), donc ton truc est un peu un serpent qui se mord la queue.

    1- SI VRAIMENT tu veux rajouter tes nouveaux prospects dans la table devis (même s'ils n'ont pas de devis, sinon tu fais comme j'ai dit dans l'autre sujet), tu fais une première requête ajout des Prospects qui n'ont pas de devis avec la requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO T_Devis ( IdProspect_FK, Nom_Prospect, Prenom_Prospect )
    SELECT T_Base_Prospects.NUM, T_Base_Prospects.NOM, T_Base_Prospects.Prénom
    FROM T_Base_Prospects LEFT JOIN T_Devis ON T_Base_Prospects.NUM = T_Devis.IdProspect_FK
    WHERE (((T_Base_Prospects.NUM) Is Not Null) AND ((T_Devis.IdProspect_FK) Is Null));
    2- Là tes 2 tables ont les mêmes prospects identifiés chacun par le champ NUM unique.

    3- Là, tu peux faire une mise à jour des valeurs des champs NOM et PRENOM de la table DEVIS en liant les 2 tables par leur champs NUM (J'utilise IdProspect dans la table Devis pour les différencier) avec le code :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE T_Devis INNER JOIN T_Base_Prospects ON T_Devis.IdProspect_FK = T_Base_Prospects.NUM SET T_Devis.Nom_Prospect = [NOM], T_Devis.Prenom_Prospect = [Prénom];

    Mais je le répète, le point 3 est inutile.

    La base exemple est jointe.

    Cordialement

  8. #8
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Citation Envoyé par celine31190;t8097691
    J'ai fais ça

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Feuil1 INNER JOIN DEVIS ON Feuil1.NUM = DEVIS.NUM SET DEVIS.NUM = [Feuil1].[NUM], DEVIS.NOM = [Feuil1].[NOM], DEVIS.Prénom = [Feuil1].[Prénom];

    Mais ça me mets toujours, que ça mettra 0 lignes a jour
    Curieux, essayez ça et dites moi si ça fonctionne

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update Feuil1
    set t1.NUM = t2.NUM, t1.NOM = t2.NOM, t1.Prénom = t2.Prénom
    from Feuil1 t1, DEVIS t2
    where t1.NUM = t2.NUM ;

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/10/2010, 13h34
  2. [Graphics View] Ajouter une colonne contenant des images dans un QTableView
    Par vikki dans le forum Qt
    Réponses: 8
    Dernier message: 14/09/2010, 14h00
  3. Réponses: 4
    Dernier message: 22/06/2010, 11h03
  4. Ajout de deux colonnes lorsqu'une des deux est à null
    Par KibitO dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2006, 14h07

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