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 :

Mise à jour des champs d'une table à partir d'une autre


Sujet :

Access

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut Mise à jour des champs d'une table à partir d'une autre
    Bonjour !

    Je suis actuellement en train d'essayer de mettre à jour les données d'une table.
    Entre les deux tables, il n'y a pas un seul champ commun (le bazard dans les données).

    Voila l'architecture : (enfin, l'architecture qui nous interesse )

    DonneesAImporter
    Numéro
    Col1
    Col2
    Champ5

    DonneesAModifier
    Champ5
    Champ7
    Champ9
    Champ14

    DonneesAImporter.Numero contient les valeurs à insérer dans DonneesAModifier.Champ5

    Col1 et Champ7 sont semblables, Col2 et Champ9 sont identiques, et DonneesAImporter.Champ5 et DonneesAModifier.Champ14 aussi...

    J'ai réussi à faire une requete de modification, mais bizarrement elle ne fonctionne pas... J'ai essayé d'adapter les solutions utilisant un LIKE dans les threads que j'ai trouvé, mais je n'ai pas réussi...

    Ma première requete était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE DonneesAModifier SET DonneesAModifier.Champ5 = DonneesAImporter.Numero
    WHERE DonneesAModifier.Champ7 Like DonneesAImporter.Col1 And DonneesAModifier.Champ9=DonneesAImporter.Col3 And DonneesAModifier.Champ14=DonneesAImporter.Champ5;
    J'avais essayé cette variante, mais ça ne marchait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE DonneesAModifier SET DonneesAModifier.Champ5 = DonneesAImporter.Numero
    WHERE DonneesAModifier.Champ7 Like  "’*" & DonneesAImporter.Col1 & "*'" And DonneesAModifier.Champ9=DonneesAImporter.Col3 And DonneesAModifier.Champ14=DonneesAImporter.Champ5;
    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    Salut.

    je crois qu'il faut que tu lies les tables d'abord, dans une requete selection normale.
    Pour la liaison, faut des champs contenant dse valeurs identiques, genre Col2 et Champ9.

    ensuite faut savoir quel champs mettre a jour. Champ 5 ?

    ce qui donne un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DonneesAModifierINNER JOIN DonneesAImporter ON DonneesAModifier.champ9= DonneesAImporter.Col2 SET DonneesAModifier.Champ5 = DonneesAImporter.Numero
    pour les where je n'ai pas compris ce que tu voulais comme restriction...

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut
    Je pense qu'un dessin vaut mieux qu'un long discours, même si je vais faire un discours quand même...
    Comme on peut le voir sur le dessin, il y a plusieurs points commun par enregistrement...
    Champ9 = Col2, Champ14 = Champ5, et Champ7 et Col1 sont semblables, mais pas identiques...

    Ce que je veux faire en fait, c'est mettre à jour Champ5 de DonneesAModifier avec Numero de DonneesAImporter... pour chaque enregistrement ayant :

    - DonneesAModifier.Champ14 = DonneesAImporter.Champ5
    - DonneesAModifier.Champ9 = DonneesAImporter.Col2
    - DonneesAImporter.Col1 = '%' + DonneesAModifier.Champ7

    VOilà, j'espère avoir été plus précis

    Merci d'avance !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    Boudu con, c'est pas gagné.

    les enregistrements sont sacréments différents...

    faut-il que toutes ces conditions soient vérifiées en même temps ?
    DonneesAModifier.Champ14 = DonneesAImporter.Champ5
    - DonneesAModifier.Champ9 = DonneesAImporter.Col2
    - DonneesAImporter.Col1 = '%' + DonneesAModifier.Champ7

  5. #5
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut
    Oui, en effet, ils doivent être vérifiés en même temps... Je galère pas mal

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    le but serai pour toi d'arriver a lier les tables sur des enreg. identiques. ensuite tu n'auras qu'a demander les enregistrements non correspondants puis transformer en requete mise a jour.

    on approche l'hérésie mais essaye ça :

    dans une requete selection, avec les deux tables, essaye de lier les champs contenant des données identiques (et non semblable). On peut faire plusieurs liaisons entre 2 tables.
    Déjà tu auras peut etre la liste des lignes identiques, a exclure donc de la mise a jour.

  7. #7
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut
    Merci, je vais tenter d'utiliser cette méthode... (si ça ne marche pas, j'abandonne et je crée un programme windev permettant de faire ça... Ce sera galère mais tant pis...)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/06/2012, 12h12
  2. [AC-2000] Mise à jour des données d'un formulaire à partir d'un autre
    Par Vincent79 dans le forum IHM
    Réponses: 6
    Dernier message: 03/09/2009, 14h45
  3. [Tables] Update d'une table à partir d'une autre
    Par le_niak dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/01/2008, 09h01
  4. Module de mise à jour des champs d'une table
    Par kikaillo dans le forum Access
    Réponses: 14
    Dernier message: 18/04/2006, 09h42
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 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