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 :

Update or insert ?


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Points : 35
    Points
    35
    Par défaut Update or insert ?
    Bonjour,

    Je cherche un petit coup de main sur une issue que je pense solvable via access
    Vais tenter de vous expliquer

    Dans la pratique j'ai 2 tables que je join sur un certain champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT table1.*, table2.*
    FROM [Table1] LEFT JOIN Table2 ON champ1= table2.champ2;

    Et j'aimerais pouvoir faire un insert ou update du champ8 de ma table2 lorsque que le champs 1 de ma table 1 a une string length de 2

    en gros ja vais ecris un truc du genre



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE table2
    SET champ8 = "toto.docm"
    WHERE LEN(table1).champ1 = 2);
    mais cela ne fonctionne pas :/

    Est-ce qu'une bonne ame pourrait m'éclairer ?


    Merci d'avance

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    D'abord sauvegarder les tables !!!

    et essayer ce genre [EDIT] Le in est à remplacer par = sinon on perd le lien entre la table1 et la table2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE table2
    SET table2.champ8 = "toto.docm"
    WHERE table2.champ2
    in (select table1.champ1 from Table1 where LENgth(table1.champ1) = 2))
    Si ça ne convient pas, envoyer un jeu d'essai de table1 et table2 + définition des tables et résultat attendu ...
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    il faut aussi faire une jointure avec la table2 vers table1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE table2 INNER JOIN Table1 ON table2.champ1 = Table1.champ1 SET table2.champ8 = "toto.docm"
    WHERE CInt(Len([Table1].[champ1]))=2;
    Et j'aimerais pouvoir faire un insert ou update du champ8 de ma table2 lorsque que le champs 1 de ma table 1 a une string length de 2
    Remarque : on ne peut pas faire un insert ou update avec une seule requête, il faut faire une requête par action.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonjour,
    il faut aussi faire une jointure avec la table2 vers table1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE table2 INNER JOIN Table1 ON table2.champ1 = Table1.champ1 SET table2.champ8 = "toto.docm"
    WHERE CInt(Len([Table1].[champ1]))=2;
    Remarque : on ne peut pas faire un insert ou update avec une seule requête, il faut faire une requête par action.
    Oui effectivement pour la jointure entre table2 et table1
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Points : 35
    Points
    35
    Par défaut
    Merci pour l aiguillage

    je suppose donc l'utilisation d'une requete UNION entre le select et l'update

    Enfin je vais continuer a creuser, quoi qu'il arrive je vous donnerai l'info

    Bien à vous, bonne journée

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    je suppose donc l'utilisation d'une requete UNION entre le select et l'update
    non, car la requête UNION ne peut pas être utilisée pour de la mise à jour.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. [SQL2K][BCK] erreur de syntax pour update et insert
    Par lifecraft dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/02/2006, 10h31
  2. update or insert
    Par jarod_bx dans le forum Access
    Réponses: 3
    Dernier message: 09/01/2006, 19h03
  3. sql update et insert dans la meme requete
    Par Jessicaa dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2005, 15h39
  4. Réponses: 8
    Dernier message: 22/06/2005, 10h34
  5. Update ou insert avec incrément d'un champ
    Par dany13 dans le forum ASP
    Réponses: 5
    Dernier message: 15/10/2004, 12h53

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