Ok. The user would enter the clause number in your current set up, so it would be an extra field to complete. But it will give the sort order you need.
Here's another option to try (attached my mock up below) showing Table, then query
Code:
SELECT Article.PubDate, Article.productid, Article.Colour, Article.NoOfClips, Article.ClauseNo
FROM Article
ORDER BY round(CDbl([clauseno]),3) ;
You can change the 3 to the max number of sub clauses. This will not work if you have multiple "." in the clause_no.