Normale, le where conditionne le select mais pas le update ce qui donne zero pour chaque valeur. C'est une erreur courante avec cette forme de mise à jour. Le format est plutot : update t set t.c = (selec tt.c from tt where tt.b = t.b) where exist (selec tt.c from tt where tt.b = t.b), enfin c'est plutot une forme sous informix, il y en a d'autres. Par contre sous Access je ne sais pas et je cherche aussi. Ce qu'il faut bien comprendre c'est la portée des where respectifs.
Cordialement.

