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

Langage SQL Discussion :

[Access 2000] Mise a jour sur un IN


Sujet :

Langage SQL

  1. #1
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut [Access 2000] Mise a jour sur un IN
    Bonjour

    j'ai 2 table identique Afat & Afat_base
    avec un identifiant : NUMCHRO
    dans Afat_Base j'ai la champ TOP qui est rempli
    et dans Afat celui ci est vide


    alors pour remplir mon Afat.TOP
    je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Afat SET Afat.[TOP] = "OPE1"
    WHERE Afat.NUMCHRO IN  (SELECT Afat_Base.NUMCHRO FROM Afat_Base WHERE Afat_Base.TOP="OPE1");
    d'avance merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    1/ SGBD et sa version ?
    2/ supprimer les crochets s'ils sont superflus parce qu'un coup vous les utilisez alors qu'après vous ne les utilisez pas
    3/ quelle est votre question ?

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Pourquoi faire si compliqué?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Afat, Afat_Base SET Afat.TOP = Afat_Base.TOP WHERE Afat.NUMCHRO = Afat_Base.NUMCHRO AND Afat_Base.TOP='OPE1';
    Ceci ne pourrait il pas fonctionner?

    Mets bien Afat.TOP = Afat_Base.TOP et non l'inverse sinon tu perdras toutes tes valeurs.
    Ou alors mets Afat.TOP = 'OPE1' directement


    Jasmine,

  4. #4
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    alors je travailles avec Access 2000

    quand je lance mon UPDATE et celui de jasmine

    ça me met le message d'erreur "Incohérence de type dans une expression"

    PS:
    le type du NUMCHRO est du type texte (c pas moi qui ait fait cette base )

    alors j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Afat.NUMCHRO LIKE Afat_Base.NUMCHRO
    et là ça mouline une table de 100 000 enregistrement qui cherche dans une table de 110 000

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Jasmine, savez-vous que votre syntaxe est :
    - marginale car supportée par peu de SGBD
    - non conforme vis-à-vis de la norme SQL
    Personnellement, je la déconseille, d'autant qu'il ne faut pas modifier grand chose pour avoir une structure plus "passe-partout".

    Ceci dit, je ne vois toujours pas votre question
    Votre requête initiale ne fonctionne t'elle pas ?
    Avez-vous un message d'erreur ?

  6. #6
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Ah non, je ne savais pas. Pourquoi non conforme? J'avais pourtant trouvé cette requête dans un tutoriel. Comme quoi, il faut se méfier de ce que l'on lit. Je débute en SQL, j'aimerais apprendre. Tous les conseils sont les bien venus.
    J'ai déjà fait des requêtes de ce genre et cela a très bien fonctionné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Afat, Afat_Base SET Afat.TOP = Afat_Base.TOP WHERE Afat.NUMCHRO = Afat_Base.NUMCHRO

    et la requête que tu proposais ne fonctionne-t'elle pas non plus?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Afat SET Afat.TOP = 'OPE1'
    WHERE Afat.NUMCHRO IN  (SELECT Afat_Base.NUMCHRO FROM Afat_Base WHERE Afat_Base.TOP="OPE1");

    Merci,

    Jasmine,

  7. #7
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    merci pour ça a tres bien maché avec un like

    le type des champs numChro était différent d'une base a l'autre

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

Discussions similaires

  1. [Access 2000] Mise en page état
    Par Brosseux dans le forum IHM
    Réponses: 1
    Dernier message: 11/12/2006, 17h18
  2. [Access 2000] Mise à jour colonne
    Par grotoumou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/11/2006, 14h10
  3. [MSDE 2000] Mise à jour d'un solde de commande
    Par Pierre Fauconnier dans le forum Langage SQL
    Réponses: 1
    Dernier message: 20/10/2006, 12h53
  4. [Access 2000] Mise en forme conditionnelle
    Par Jord dans le forum Access
    Réponses: 1
    Dernier message: 26/07/2006, 15h35
  5. Réponses: 3
    Dernier message: 27/04/2006, 10h01

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