parnassus1, since there are a fixed number of tests, you could include a column in your query that looks like this:
HighScore([Test1],[Test2],[Test3],...etc)
That's assuming you have a mangageable number of tests, though you'd only have to type that equation one time. That solution utilizes a HighScore custom function. If you're interested in going that route, let us know and we can help you write it.
That said, I'm confused about some of the things you've written. When you're using an "auto number as primary key", if you're not using it to indentify the students, then for what? For each test? You say that normalizing your tables "makes data entry too awkward". I disagree absolutely with that statement. Normalizing tables makes data entry the most straightforward it can be. You say that it was it was annoying to "select a pupils name from a list of 1000". Well, how are you associating a test with a student now then?
It sounds like you don't really understand relational database systems. I don't want to sound like your mother, but if you take the time to learn more about database design, you'll understand why some of the other people in the thread suggest that you are going about the problem in the "wrong" way. Trust me and them when we say that if you take the time to solve this problem the right way, you will be better off for it in the long run. (That's my gentle way of pushing you in the right direction.)