This is an issue with your SQL statement:
SELECT * FROM Prod INNER JOIN ProdType ON ProdType.TypeID = Prod.ProdType INNER JOIN ContSize
If you do an inner join with another table that has multiple results, then the recordset will return a row for each result.
You can fix that by adding a GROUP BY statement to the SQL like:
SELECT * FROM Prod INNER JOIN ProdType ON ProdType.TypeID = Prod.ProdType INNER JOIN ContSize GROUP BY ProductID
Which will then only show one row for each unique ProductID, or you could use a distinct clause like:
SELECT DISTINCT Prod.* FROM Prod INNER JOIN ProdType ON ProdType.TypeID = Prod.ProdType INNER JOIN ContSize
You will still want to add an ON clause for your ContSize join because the query as it stands makes no sense.