ACCESS VBA Problème de Requete Update

Résolu
cs_lath Messages postés 4 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 22 décembre 2008 - 21 déc. 2008 à 21:35
cs_lath Messages postés 4 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 22 décembre 2008 - 22 déc. 2008 à 01:09
DoCmd.RunSQL "UPDATE Table1 SET Champ1 = (Select Champ1 From Table2 WHERE Table2.N° = " & Variable & " and Table2.Champ2 = Table1.Champ1);"

Table1.Champ1 = une valeur temporaire qui correspond a Table2.Champ2
Je voudrais donc remplacer la valeur Table1.Champ1 par Table2.Champ1 quand Table1.Champ1=Table2.Champ2

ex:
Table1.Champ1=30
Table2.Champ2=30
Table2.Champ1=700

Resultat souhaité Table1.Champ1=700 et ce pour l'enssemble de la table

j'obtiens l'erreur 3073 (l'opération doit utiliser une requete qui peut etre mise a jour)

une idée ? (je tiens a le faire en une ligne de code)

5 réponses

cs_lath Messages postés 4 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 22 décembre 2008
22 déc. 2008 à 01:09
http://www.techonthenet.com/access/queries/update2.php



Effectivement avec un simple inner join, cela fonctionne.
UPDATE Table1 INNER JOIN Table2 ON Table1.Champ1 Table2.Champ2 SET Table1.Champ1 Table2.Champ1 WHERE Table2.N°= Variable;
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2008 à 22:33
Salut

Il te manque la clause where sur l'update
car la il fait un update sur toute la table car tu ne lui indique pas les enregistrement a modifier donc il le fait sur toute la table
0
cs_lath Messages postés 4 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 22 décembre 2008
21 déc. 2008 à 22:46
Merci, et oui effectivement je souhaite update toute la table, mais il ne fait rien, erreur 3073...

Donc
DoCmd.RunSQL "UPDATE Table1 SET Champ1 (Select Champ1 From Table2 WHERE Table2.N° " & Variable & " and Table2.Champ2 = Table1.Champ1) WHERE Champ1 like ""*"" ;"

ne fonctionne toujours pas :(
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2008 à 22:57
tu refais la meme erreur
sauf que tu te trompes sur la syntaxe de la requete en meme temps


like '*' --> toute la table


DoCmd.RunSQL "UPDATE Table1 SET Champ1 (Select Champ1 From Table2 WHERE Table2.N° " & Variable & " and Table2.Champ2 = Table1.Champ1) WHERE Champ1 IN (Select Champ1 From Table2 WHERE Table2.N° = " & Variable & " and Table2.Champ2 = Table1.Champ1)

devrait mieux fonctionner
0

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

Posez votre question
cs_lath Messages postés 4 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 22 décembre 2008
21 déc. 2008 à 23:18
Ne fonctionne pas non plus, toujours la même erreur.

Remplacer le contenu de Table1.Champ1 par Table2.Champ1 quand Table1.Champ1=Table2.Champ2 et ce sur toute la Table1 ... cela parait si simple, et c'est si frustrant de ne pas trouver ;(
0
Rejoignez-nous