Do you really want/need to replace them, or can you just display the descriptions (multiple per row).

In general keeping the descriptions in a seperate table is a good idea (data normalization). Kind of a moot point since you cant change the schema in any case...

Code:
SELECT Table2.ID, 
Table1_1.Descript AS D1, Table1_2.Descript AS D2, Table1_3.Descript AS D3, Table1_4.Descript AS D4

FROM
(((Table2 INNER JOIN Table1 AS Table1_1 ON Table2.Code1 = Table1_1.Code) 
INNER JOIN Table1 AS Table1_2 ON Table2.Code2 = Table1_2.Code) 
IINNER JOIN Table1 AS Table1_3 ON Table2.Code3 = Table1_3.Code) 
INNER JOIN Table1 AS Table1_4 ON Table2.Code4 = Table1_4.Code;