UPDATE tblDataStudent SET tblDataStudent.CurrentGrade = Switch([Age]=5 And [currentgrade]="PK","K",[currentgrade]="K","01",[currentgrade]="01","02",[currentgrade]="02","03",True,[currentgrade])
WHERE (((tblDataStudent.Active)=Yes));
The Age = 5 and CurrentGrade = PK should work. I see nothing wrong with it. Is Age a numeric field? If not then change the 5 to a "5" or "05" depending on the size of the field. This would account for this expression not working. Check this over very carefully as it should work the way it is written.
I am confused by the red code above. TRUE? What are you checking for TRUE? You must have a valid expression here. Luckily nothing has fallen through to that point so that the query tried to execute the expression or you would have had an error. Were you planning on checking a field called Retain or HoldBackAYear or something like that? You must put in a valid equation. And it may need to be checked first so that if it is TRUE the Switch won't be checking the other values which also may be applicable.
Bob Scriver