VHDL constant range declaration
I think the second line should be 

constant LOWER_BOUND : natural := 7;

above. (OK, it is now! :-) But anyway...
welcome to a language with a proper type system! Learn to use it, and you will love it. Or learn to fight it, and you will hate it. Your choice...

What you are looking for is either

type Field_Range is range UPPER_BOUND downto LOWER_BOUND;


or 

subtype Field_Range is Natural range UPPER_BOUND downto LOWER_BOUND;


according to whether you want type safety, or easy mixing of Field_Range with other integer quantities.

Either way you can say

Field : Array(Field_Range) of Something;

for i in Field_Range loop
   ...
end loop


and (almost!) never worry about bounds errors again.

What is the difference between Type and Subtype?
That'll take a little learning, but here's a start:

if you have the following,

constant N : Natural := 7;
constant F : Field_Range := N;


the subtype will allow it, the new type will not, you would need to convert:

constant F : Field_Range := Field_Range(N);