Clause FROM Requête SQL (Access 2007)

Fermé
rougv86 - 1 sept. 2008 à 09:00
 Mllx - 12 janv. 2015 à 17:09
Bonjour tout le monde !

J'ai un problème avec une requête SQL, dont voici le code :

SELECT Points FROM Compta
UPDATE Points SET Points.Compta = Points!Compta+50
WHERE (((Nom_Prenom.Compta)=Forms.Form1.Liste1));

Ou Compta est une table contenant les champs Points et Nom_Prenom, et Liste1 une liste déroulante d'un formulaire Form1 qui permet de choisir une valeur du champ Nom_Prenom.

A chaque fois que j'exécute cette requête, j'obtiens le même message d'erreur : Erreur de syntaxe dans la clause FROM : qu'est-ce qui ne vas pas ????

D'autre part, si vous pouviez me dire que faut-il mettre en code SQL pour obtenir des données par récupération d'une liste déroulante ; je ne suis pas sûr du tout que "Forms.Form1.Liste1" soit valable.

Merci d'avance pour votre aide!
A voir également:

5 réponses

@nGel_974 Messages postés 3163 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 25 avril 2010 157
1 sept. 2008 à 09:14
Bonjour,

Je pense aussi que ça soit ton "Forms.Form1.Liste1" qui pose problème, je te conseil de stocker la valeur dans une variable qui servira de référence.

Aussi niveau du From un pti pasage à la ligne pourrait peut-être résoudre le probème :)

SELECT Points 
FROM Compta
UPDATE Points SET Points.Compta = Points!Compta+50
WHERE (((Nom_Prenom.Compta)=Forms.Form1.Liste1)); 



Par ailleurs je ne sais plus si la syntaxe du Update est correcte (ordre des Select, From, etc)
0
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
1 sept. 2008 à 09:40
Salut,
Le problème ici est que tu fais une requête de sélection et une requête de mise à jour en même temps. Ces deux requêtes doivent être effectuées séparément.

Tu devrais donc avoir SELECT Point FROM Compta; (avec le point-virgule à la fin pour indiquer la fin de l'instruction) et ensuite ton UPDATE.

D'autre part, ton Update ne semble pas correct. Si Compta est une table et Points un champ, pour accéder à ce champ tu dois écrire Compta.Points et non l'inverse. De même, tu dois écrire Compta.Points + 50, et Compta.Nom_Prenom.

@+
0
@nGel_974 Messages postés 3163 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 25 avril 2010 157
1 sept. 2008 à 10:01
Ah je trouvais ça louche quand même un Select et un Update dans la même requête (trop rouillé ><) !
0
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
1 sept. 2008 à 10:07
Et bien oui, le Update est également une requête de sélection, puisqu'à la fin on y met l'instruction Where. On peut ne mettre à jour que quelques enregistrements, c'est donc une requête de sélection doublée d'une requête de modifications du contenu de la base.
0
Suite à vos conseils, voici mon nouveau code :

SELECT Points FROM Compta;

UPDATE Points SET Compta.Points = Compta.Points + 50
WHERE (((Compta.Nom_Prenom)=Forms.Form1.Liste1));

Le problème, c'est que ca marche toujours pas !
Quand je clique sur exécuter, j'ai droit à un message d'erreur : Caractères trouvés après la fin de l'instruction SQL.

Qu'est ce qu'il y a encore a corriger ??

Merci beaucoup pour votre aide !
0
C'est le point virgule qui n'est pas à la fin de la requête !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
2 sept. 2008 à 09:17
Le truc, c'est que tu n'as pas besoin de ta requête de sélection.
Tape juste ton Update et enlève le Select.
Ca devrait marcher.

@+
0

Discussions similaires