Одним из решений было бы следующее: проанализировать полученные строки, чтобы извлечь числовые значения, поставить нулями впереди при необходимости и вывести строку.Например, 1.2.1654 становится 0001.0002.1654 (если вы уверены, что нумерация не будет превышать 4 символов).Код:
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
(включено улучшение производительности HansUp) Затем вы можете отсортировать по этому.
Напишите функцию VBA, которая сделает это за вас, например, NormalizeVersion, затем вызовите ее в своем запросе., например (воздушный код):
SELECT DISTINCT NormalizeVersion(tblSample.Version)
FROM tblSample
ORDER BY NormalizeVersion(tblSample.Version) DESC;
(код исправлен после комментария)