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 :

Transfert vers une table selon condition


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut Transfert vers une table selon condition
    Bonjour,

    J'aurai quelques questions a vous posez.

    Je possède une table "A" avec les champs "nom", "prénom", "adresse", "CP", "Ville", "tph" et "transfert".

    J'ai une autre table B" avec les champs "nom" et "prénom".

    Je souhaiterai faire en sorte que lorqu'un enregistrement de la table "A" à pour valeur "1" dans le champs "transfert", le nom et le prénom s'inscrivent dans la table "B" dans les champs correspondant.

    Et lorsque la valeur "0" est présente dans le champs "Transfert", la copie du nom et prénom s'enlève de la table "B" s'ils étaient présent.

    Pourriez vous m'epliquez comment faire?
    Merci.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je procèderai ainsi :
    - Je vide la table B par une requête suppression
    - J'ajoute dans table B avec une requête ajout (A dans B) avec comme critère
    TableA.Transfert=1

    Bon courage

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Je ne peut pas faire une requete qui vide complétement la table "B" car il y a des noms qui restent pratiquement tout le temps dans la table "B".

    Je serais donc obligé à chaque fois de transférer toutes les personnes que j'ai besoin après avoir supprimé un autre individu.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    D'accord,

    dans ce cas la requête de suppression sur table B doit avoir la restriction suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE [Nom]+[Prenom] AS Nom_Prenom
    FROM TableB
    WHERE ([Nom]+[Prenom]) In (Select [Nom]+[Prenom] FROM TableA WHERE Transfert=0);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Bonjour LedZeppII

    Pourrais tu m'indiquer comment créer ces deux requêtes car ça fait trois jours que je me suis mis à access et je ne sais trop comment faire.

    Merci.

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Requête Suppression:
    - Nouvelle requête (mode création)
    - Ajouter la table tableB
    - Fermer boîte de dialogue 'Ajouter une table'
    - Menu principal : Requête -> Supprimer une requête
    - Ligne champ 1ère colonne : taper [Nom]+[Prenom]
    - cliquer dans la colonne juste à droite
    - En face de Supprimer, Access met 'Où'
    - Dans Critères (sous le 'Où') taper : In (Select [Nom]+[Prenom] FROM TableA WHERE Transfert=0)
    - Sauver la requête

    Requête ajout:
    - Nouvelle requête (mode création)
    - Ajouter la table tableA
    - Fermer boîte de dialogue 'Ajouter une table'
    - Menu principal : Requête -> Requête Ajout ...
    - Ajouter A Table : Sélectionner TableB
    - Faire glisser les champs Nom et Prenom dans la grille.
    - On doit avoir Champ : Nom Ajouter à : Nom, Champ : Prenom Ajouter à : Prenom
    - Faire glisser le champ Transfert dans la grille.
    - Sous le champ Transfert, Ajouter à doit être vide, Critère doit contenir la valeur 1
    - Sauver la requête

    Pour tester, faire une copie de la base sous un autre nom et essayer le requêtes Suppression et ajout.

    Bon courage

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci mille fois à toi LedZeppII. C'est parfait!

    Edit:

    J'aurais une dernière question:

    J'ai fait en sorte que les deux deux requêtes s'éxécutent lorsqu'on ferme le formulaire.
    Le truc c'est quand on ferme le formulaire 3x, les données sont aussi transférés 3x dans la table "B".

    Peut-on y remédier?

    Merci

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Oui, on peut faire en sorte que la requête ajout, n'ajoute que des enregistrements de la tableA
    qui ne sont pas présents dans la tableB.

    - Ouvres la requête ajout en mode création (bouton Modifier).
    - Ajoute la table TableB à la requête
    - Relie Table1.Nom à tableB.Nom et TatbleA.Prenom à TableB.Prenom
    - Double-clique sur le premier lien (Nom)
    - Choisi l'option Inclure tous les enregistrements de la table 'TableA' et seulement
    ceux de la table 'TableB' pour lesquels les champs joints sont égaux
    - Même chose sur le deuxième lien (Prenom)
    On obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Table1           TableB
    Nom       ------> Nom
    Prenom    ------> Prenom
    Transfert
    - Fais glisser le champ Nom de tableB dans la grille.
    - Mets à blanc (supprime) le champ Nom en dessous dans la ligne Ajouter à
    - En critère, mets Est Null
    - Sauvegarder
    On doit avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Champ        Nom      Prenom   Transfert  Nom
    Table        TableA   TableA   TableA     TableB
    Ajouter à    Nom      Nom
    Critères                       1          Est Null
    La requête n'ajoute maintenant que les enregistrements de tableA ayant Transfert=1
    et qui ne sont pas présents dans tableB (Nom+Presnom).

    Bon courage

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup!

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

Discussions similaires

  1. [AC-2007] Exporter des données d'une table vers une autre sous condition
    Par Imitator92 dans le forum IHM
    Réponses: 3
    Dernier message: 11/09/2009, 15h34
  2. transfert d'une table vers 3 tables differentes
    Par skillipo dans le forum Requêtes et SQL.
    Réponses: 26
    Dernier message: 26/11/2007, 15h37
  3. transfert d'une table vers 3 tables differentes
    Par skillipo dans le forum VBA Access
    Réponses: 0
    Dernier message: 21/11/2007, 17h42
  4. Réponses: 6
    Dernier message: 10/03/2007, 11h42
  5. [vb.net] transfert d'une table SQL-Servr vers un fichier texte
    Par nkonito dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/05/2006, 04h36

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