¿Cómo puedo hacer para que una bbdd de ms-access, use un campo en orden ascendente-descendente pero no lo haga de A-Z o Z-A, sino inciando desde otra letra que no sea la primera o la última del abecedario, incluyendo el resto de caracteres?
Esta solución que te propongo funciona como si el alfabeto no fuera el que es sino como tú quieras definirlo. Podrías crear una tabla "Orden" con los siguientes campos AlfabetoTradicional: Texto 1 AlfabetoArbitrario: Texto 1 (indexado) En el campo AlfabetoTradicional pondrías todos los caracteres en el orden tradicional y el el campo AlfabetoArbitrario podrías los caracteres en el nuevo orden En un módulo estándar tendríamos esta función: Function Transformar( Cadena as String ) As String Dim rst As DAO.Recordset Dim Transformada As String Dim Car As String*1 Dim i As Integer set rst = CurrentDB.OpenRecordset("Orden") rst.Index = "AlfabetoArbitrario" For i = 1 To Len( Cadena ) Car = Mid(Cadena, i, 1 ) rst.Seek "=", car If rst.NoMatch then Transformada = Transformada & car Else Transformada = Transformada & rst("AlfabetoTradicional") End If Next rst.Close Transformar = Transformada End Function Luego podrías utilizar la función por ejemplo de la siguiente manera: SELECT Nombre FROM Contactos ORDER BY Transformar(Nombre) Y sale ordenado según el alfabeto arbitrario. se puede rellenar la tabla orden mediante: Sub Rellenar() Dim i As Integer Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Orden") For i = Asc("a") To Asc("z") rst.AddNew rst(0) = Chr(i) rst(1) = Chr(i) Next End Sub