John,
Thanks for the assistance. I normally am pretty good at normalization, but
this one has me stumped. As you can see, I'm recording values for 1100+
processes across 30 categories, with the values equalling severe, moderate,
or low. My thought was to mirror the sort of query that looks at a numeric
value, compares it between a low and high numeric value, and then assigns it
a rating, or score. Apparently, my approach isn't working. Would you mind
pointing me in the right direction toward normalization heaven? I appreciate
the help.
Sure. You have a perfectly normal many to many relationship between
Processes and Categories; the proper way to build a many to many
relationship is with three tables. In your case you'll need a tiny
little fourth "lookup" table for the severities. Try something like:
Processes
ProcessID Primary Key
<information about the process>
Categories
Category Primary Key (your current 30 fieldnames would be 30 rows
here; you might or might not want to have a numeric CategoryID. If the
categories are pretty stable I'd just use the category name as the
only field, and Primary Key).
Ratings
ProcessID < link to Processes, what's being rated
Category < link to Categories, what category are you rating
Severity < link to Severities, how bad is it
Severities
Severity Text <L, M, H>
Score Integer
Thus rather than having 30 *FIELDS* in your Processes table - with
categories embedded in the fieldname - you would have 30 *RECORDS* in
the Ratings table. If you decide to drop a category, or add a new
category, it's now very easy; just add or delete a record in the
Categories table. With your current design you will need to alter your
table, all queries involving the table, your form, and all your
reports; with the normalized design - you add a record and you're
done.
John W. Vinson[MVP]