it's not hard, just cumbersome, for instance you can't just count items because what if there is no value. you have to account for tests not taken yet.
So you'd end up with a formula something like:
Code:
(iif([Field_1] = "Pass", 1, 0) + iif([Field_2] = "Pass", 1, 0) + iif([Field_3] = "Pass", 1, 0) + iif([Field_4] = "Pass", 1, 0) + iif([Field_5] = "Pass", 1, 0))/(iif(not isnull(field_1), 1, 0) + iif(not isnull(field_2), 1, 0) + iif(not isnull(field_3), 1, 0) + iif(not isnull(field_4), 1, 0) +iif(not isnull(field_5), 1, 0))
Where you account for the value not being there at all, then you may want to account for the denominator being zero itself to avoid the #ERROR description popping up if there are no recorded values in your columns at all.
As John_G pointed out, having a non-normalized structure makes these calculations extremely tedious to build and test.
Another option is to use a serious of union queries to fake a normalized structure but I honestly do not know if MS Access can handle a union query with 55 different components you would have to have something like
Code:
SELECT UNIQUE_ID, FIELD_1 FROM TestTable
UNION ALL
SELECT UNIQUE_ID, FIELD_2 FROM TestTable
UNION ALL
SELECT UNIQUE_ID, FIELD_3 FROM TestTable
UNION ALL
etc...
if you can actually get all 55 of your fields into a union query the formula becomes a lot simpler to calculate the score.