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] Update ne s'exécute pas complètement car PK


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut [Access] Update ne s'exécute pas complètement car PK
    bonjour, dans mon code VB j'utilise une DAO.querydef :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MyDB as DAO.Database
    Dim MyQry as DAO.QueryDef
    Dim SQLUpdate as String
     
    Set MyDB=OpenDatabase("monfichier.mdb")
    SQLUpdate = "UPDATE MaTable SET Champs1=Champs1+1 WHERE 1"
    Set MyQry = DBProj.CreateQueryDef("", SQLUpdate)
    MyQry.Execute
    MyQry.Close
    MyDB.Close
    Ma DB est un fichier ACCESS. Mon champs 'Champs1' est un entier, clé primaire, et autoincrémenté.
    Mon problème est que seule la dernière ligne est mise à jour.
    J'ai également essayé un autre truc : SET Champs1=Champs1+5 et dans ce cas là, ce sont les 5 dernières lignes qui sont mises à jour. Pourtant si je crée un autre champs 'Champs2' et que je fais SET Champs2=Champs1+1 cela fonctionne. Quelle est mon erreur ?

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    je pense que cela devrait te retourner une erreur.
    En effet c'est une clé primaire auto incrémenté. Donc des que tu vas incrémenter ton 1er champ de 1, tes 2 premiers champs vont avoir la meme valeur ce qui va poser probleme pour la clé primaire

    je ne suis pas sur que sa marche mais essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE MaTable SET Champs1=Champs1+1 WHERE 1 order by Champs1 desc"
    Bon courage

    Michel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 43
    Points
    43
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE MaTable SET Champs1=Champs1+1 WHERE 1 order by Champs1 desc"
    c'est une bonne idée mais ça ne marche pas. Je crois qu'on ne peut pas mettre un ORDER BY dans une requête UPDATE.

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Merci de lire les Conseils à lire avant de poster SVP, et en particulier d'éviter tout code hors-SQL.

    Que signifie "WHERE 1" ? Une condition toujours vraie ? Dans ce cas, pourquoi spécifier un WHERE ?

    Pour en revenir au problème, il semble bien que l'analyse soit la bonne, çàd que c'est bien la contrainte d'unicité qui pose problème. Dans un tel cas, pourquoi ne pas coder une procédure (en VB) listant les éléments de cette table dans un Recordset en les triant sur Champ1 DESC, et de les mettre à jour 1 par 1 ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    oui dans ce cas je ne vois pas trop comment le faire en sql si cela ne passe pas.

    Dommage que tu utilises access car en mysql sa passe. lol

    Bon courage pour la suite

    Michel

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 108
    Points
    108
    Par défaut
    Pourquoi essai tu de changer ta clé primaire, surement pour modifier l'affichage ou quelque chose comme ca.

    Tu pourrais faire un autre champp par exemple ordreAffichage qui serait numérique seulement et tu pourrait modifier seulement ce champ et ordonner tes lignes par apport a ce champs.

    Peux-être que ce n'est pas ton but non plus mais au cas ou

Discussions similaires

  1. [AC-2007] access ne s'excute pas
    Par andy331 dans le forum IHM
    Réponses: 3
    Dernier message: 10/03/2010, 15h35
  2. Réponses: 1
    Dernier message: 27/02/2009, 14h09
  3. Macro ne s'exécute pas car fichier précédent tjrs ouvert
    Par mattwarend dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/12/2008, 12h02
  4. [MySQL] une requête Update qui ne s'exécute pas
    Par DeveX dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/07/2008, 13h37
  5. [SQL] Requête UPDATE qui ne s'exécute pas avec PHP
    Par xplose dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/08/2007, 09h42

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