When you mark a code inactive you are only removing the code from the look-up list for potential values.
Most of the FIMS code tables have "Active" as the last column. By default the value is "Yes".
The Yes/No indicator tells the system whether or not to include the value in the code table look-up found on the field in a screen.
For example, in the Program Code table if you mark the "Arts" code as a "No", then when you click the drop down on the grantee Program code field, "Arts" will not show up as a choice. If grantee records currently have Arts as a value they will not be affected.
If a field is checked (validated) against the code table, it looks to see that the value exists in the table. It does not check to see if the code is Active or not.
When cleaning up your code tables you should only remove codes that are not used by any records. Some code tables will prevent you from removing a used code. Most do not. It is therefore important to check before deleting a value. If you don't, you might navigate to a record containing the deleted code and there will be a pop-up message that will be difficult to get around without changing the current inactive value to an active one.
For some codes it would be inappropriate to change the historic value even if that value is no longer assigned to current records.
If available, running a Trends & Analysis report for the record type and using the code you are working on as the analysis field is the best way to determine if the value has been assigned to existing records.