Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
805 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  "Operation must use an updatable query".

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"Operation must use an updatable query".

n°1737908
harry crot​teur
Posté le 27-05-2008 à 17:20:30  profilanswer
 

Bonjour à tous,
 
J'ai un petit soucis avec Access aujourd'hui. Mes données sont sous Oracle,  
et sont donc liées à Access.  J'ai 2 tables : CLIENT(id_client, nom_client, id_type_client)  
et TYPE_CLIENT(id_type_client, libelle_type_client). Sous Access, j'ai un  
formulaire avec 2 listes déroulantes : Clients et Types Clients qui sont  
chaqune remplie avec le contenue de ces tables.  
J'aimerai que lorsque je selectionne un client dans la premiere liste, et un  
de client dans la seconde puis que je clique sur ENREGISTRER, l'id_type_client
du CLIENT se mette ç jour avec le nouveau.
 
Voila ce que j'ai fait :
 

Code :
  1. Dim SQL As String
  2. SQL = "UPDATE CLIENT " & _
  3. "SET CLIENT.ID_TYPE_CLIENT = ( " & _
  4. "SELECT DISTINCT ID_TYPE_CLIENT FROM TYPE_CLIENT " & _
  5. "WHERE TYPE_CLIENT.NOM_TYPE_CLIENT = '" & liste_type_client.Value & "') " & _
  6. "WHERE CLIENT.NOM_CLIENT = '" & liste_client.Value & "'"
  7. DoCmd.RunSQL SQL


 
qui correspond à :
 

Code :
  1. UPDATE CLIENT SET CLIENT.ID_TYPE_CLIENT = (SELECT ID_TYPE_CLIENT FROM TYPE_CLIENT WHERE TYPE_CLIENT.NOM_TYPE_CLIENT = 'Charter') WHERE CLIENT.NOM_CLIENT = 'AAF';


 
J'ai essayé cette requête sous Oracle avec SQL*PLUS, elle fonctionne très bien,
malheuresement je ne comprends pas pourquoi elle ne fonctionne pas sous Access,
j'obtiens le message suivant : "Operation must use an updatable query".
 
Merci d'avance à ceux qui pourront m'aider, bonne journée.

mood
Publicité
Posté le 27-05-2008 à 17:20:30  profilanswer
 

n°1737927
olivthill
Posté le 27-05-2008 à 17:42:44  profilanswer
 

Il manque le point virgule à la fin de la dernière ligne :

"WHERE CLIENT.NOM_CLIENT = '" & liste_client.Value & "';"

Mais ce n'est peut-être pas important.
 
Le problème vient peut-être de la sous-requête. La syntaxe du SQL pour Access est un peu différente de la syntaxe du SQL pour Oracle. Ou bien le problème vient peut-être du lien vers la table. Si ce n'est pas une table Access ordinaire, mais une table Oracle liée à une table Access par le système des "tables attachées" via ODBC, alors ce serait peut-être le driver ODBC qui n'accepterait pas cette syntaxe un peu complexe.

n°1738004
harry crot​teur
Posté le 27-05-2008 à 18:50:28  profilanswer
 

Merci pour ta réponse.
Ce n'est pas en effet un problème de ";"
 
Je pense comme toi que c'est Access qui n'accepte pas cette syntaxe.
 
Avez-vous une idée d'une requête qui pourrait fonctionner à la place de celle-ci car je n'y arrive pas ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  "Operation must use an updatable query".

 

Sujets relatifs
hibernate: load/criteria/hql pour des query (ex: delete)Probleme de LIMIT dans un $mysql_query (variables inside:D)
Opération automatique sur fichier txt coté serveur![VB] Opération matricielle
demande d'aide pour operation en virgule fixeRequête SQL + Opération sur Timestamp
DB2 et Materliased Query Table et rollback segmentLost connection to MySQL server during query
Erreur IE "operation abandonnée"Function name must be a string
Plus de sujets relatifs à : "Operation must use an updatable query".


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR