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 :

Erreur sql Update statement


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut Erreur sql Update statement
    Bonjour,
    Je ne trouve pas mon erreur dans ce code SQL.. 3 heures que je bloque.
    Pourriez vous m'aider ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     Set MyTable2 = MyDB.OpenRecordset("SELECT * FROM [tblRoutingMain] " & _
                                    "WHERE ((([tblRoutingMain].[QUOTE NUMBER])='" & [QUOTE NUMBER] & "') AND (([tblRoutingMain].COMPPN)='" & COMPPN & "')) " & _
                                    "ORDER BY tblRoutingMain.ROUTING ASC;")
     
      If Not MyTable2.EOF Then MyTable2.MoveFirst
     
     
          strUpdateQuery = "UPDATE tblRoutingMain SET  tblRoutingMain.[SEQ] = '" & MyTable2.Fields("SEQ") & "', " & _
                           "WHERE ((([tblRoutingMain].[QUOTE NUMBER])='" & [QUOTE NUMBER] & "CONT1" & "') AND (([tblRoutingMain].COMPPN)='" & COMPPN & "') AND (tblHardwareCost.[ROUTING]='" & MyTable2.Fields("ROUTING") & "'))" & _
                           "ORDER BY tblRoutingMain.ROUTING ASC;"
          CurrentDb.Execute strUpdateQuery, dbFailOnError

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Le message d'erreur ne serait pas inutile mais déjà vous avez une virgule en trop me semble-t-il dans la requête de mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET  tblRoutingMain.[SEQ] = '" & MyTable2.FIELDS("SEQ") & "', " &
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET  tblRoutingMain.[SEQ] = '" & MyTable2.FIELDS("SEQ") & "' " &
    Quand c'est comme ça, récupérez le contenu de vos requêtes, l'erreur se voit beaucoup mieux...

  3. #3
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Le message d'erreur etait dans le titre.
    En enlevant la virgule il change et me donne : Missing semicolon ( ; ) at the end of the statement, Run time error'3137'

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    vous ouvrez six parenthèses, mais n'en fermez que deux.

    commencez par enlever celles qui sont inutiles, puis affichez votre requête pour voir celle qui manque

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Bonjour,

    Que donne l'instruction suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print strUpdateQuery
    C'est plus facile avec la requête finale
    à+

  6. #6
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Debug.Print strUpdateQuery Me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE tblRoutingMain SET  tblRoutingMain.[SEQ] = '10' WHERE ((([tblRoutingMain].[QUOTE NUMBER])='OPP003903CONT1') AND (([tblRoutingMain].COMPPN)='A02H6007-1') AND (tblHardwareCost.[ROUTING]='1 Assembly Clean Room ACR'))
    et au niveau du code que j'ai un peu modifie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Set MyTable2 = MyDB.OpenRecordset("SELECT * FROM [tblRoutingMain] " & _
                                    "WHERE ((([tblRoutingMain].[QUOTE NUMBER])='" & [QUOTE NUMBER] & "') AND (([tblRoutingMain].COMPPN)='" & COMPPN & "')) " & _
                                    "ORDER BY tblRoutingMain.ROUTING ASC;")
     
      If Not MyTable2.EOF Then MyTable2.MoveFirst
     
     
          strUpdateQuery = "UPDATE tblRoutingMain SET  tblRoutingMain.[SEQ] = '" & MyTable2.Fields("SEQ") & "' " & _
                           "WHERE ((([tblRoutingMain].[QUOTE NUMBER])='" & [QUOTE NUMBER] & "CONT1" & "') AND (([tblRoutingMain].COMPPN)='" & COMPPN & "') AND (tblHardwareCost.[ROUTING]='" & MyTable2.Fields("ROUTING") & "'))"
     
          CurrentDb.Execute strUpdateQuery, dbFailOnError

    J'ai desormais l'erreur 3061 too few parameters. Expected 1
    Je suis perdu c'est mon premier code SQL

  7. #7
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    De plus, ne devrais je pas faire une boucle pour obtenir toutes les valeurs de MyTable2 ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 544
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 544
    Par défaut
    Bonjour,
    Il manque une parenthèse fermante dans la première requête ( 5 ouvrantes, 4 fermantes).

    Tatayo

    P.S. d'ailleurs dans les 2 requêtes les parenthèses ne servent pas à grand chose...

  9. #9
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Citation Envoyé par julienmy57 Voir le message
    De plus, ne devrais je pas faire une boucle pour obtenir toutes les valeurs de MyTable2 ?
    Non, vous devriez faire une seule requête UPDATE qui met a jour toutes les lignes nécessaires d'un seul coup.

    Si vous avez besoin d'aide, indiquez nous la structure des tables, et le but de l'opération.

  10. #10
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Pas de soucis avec les parentheses..
    Oui j'en aurais besoin s'il vous plait.

    Dans une subform j'ai un tableau avec differents enregistrements, classes par Quote NUMBER, ASSYPN et COMPNN.

    Parmis les text box de la subform il y a SEQ ( la sequence )
    Lorsque l'on modifie celle ci elle s'auto-incremente de 10 en 10 et donc change tous les enregistrements du tableau source tblRoutingMain pour un quote number precis, ASSYPN et COMPNN aussi.

    Seulement quand on la modifie je souhaiterais aussi modifier pour le meme ASSYPN, COMPNN le Quote number tel que :
    QUOTE NUMBER= QUOTE NUMBER & " CONT1"
    L'enregistrement est dans la meme table TblRoutingMain

    C'est pourquoi base sur des enregistrements tel que ROUTING ( toujours unique ) je souhaterais modifier les enregistrements de la colonne SEQ pour un QUOTE NUMBER CONT1

  11. #11
    Membre du Club
    Homme Profil pro
    intern
    Inscrit en
    Mars 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : intern
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 7
    Par défaut
    Ah pardon ici pas de ASSYPN excusez moi

Discussions similaires

  1. [SQL] Erreur dans UPDATE SELECT simple
    Par daner06 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/12/2006, 15h58
  2. Parametres listbox requete SQL & "updateable query" erreur
    Par haibane dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 01/09/2006, 11h52
  3. [VB.Net] Pourquoi ai-je une Erreur SQL sur un update ?
    Par ndsaerith dans le forum Accès aux données
    Réponses: 3
    Dernier message: 03/08/2006, 11h32
  4. [SQL] Erreur requête Update
    Par arnaudrou dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 23/04/2006, 16h38
  5. Réponses: 1
    Dernier message: 06/10/2005, 10h09

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