One solution would be: parse the strings that you get so you extract the numerical values, place leading 0s in front when required, and output a string.
E.g.
1.2.1654 becomes 0001.0002.1654 (if you're sure the numbering won't exceed 4 characters).
Code:
Function NormalizeVersion(Inputstring As String) As String
' Creates sortable strings out of version numbers such as 1.6.222
Dim Elements() As String
Dim Counter As Integer
Dim Result As String
Elements = Split(Inputstring, ".")
For Counter = 0 To UBound(Elements)
Select Case Counter
Case 0 'First element
Result = Format(Elements(Counter), "00000")
Case Else 'Followups
Result = Result & "." & Right("0000" & Elements(Counter), 5)
End Select
Next Counter
NormalizeVersion = Result
End Function
(incorporated HansUp's performance improvement)
Then you can sort on this.
Write a VBA function that does this for you, called e.g. NormalizeVersion, then call it in your query, such as (air code):
SELECT DISTINCT NormalizeVersion(tblSample.Version)
FROM tblSample
ORDER BY NormalizeVersion(tblSample.Version) DESC;
(code fixed after comment)