En http://office.microsoft.com/es-es/access/HA100627603082.aspx Ordenar registros distinguiendo mayúsculas de minúsculas en Microsoft Office Access 2007 Microsoft Office Access 2007 ordena los registros en orden ascendente o descendente sin distinguir las mayúsculas de las minúsculas. Sin embargo, si escribe algunas líneas en código de Visual Basic para Aplicaciones (VBA), puede ordenar el texto por sus valores de caracteres ASCII. La ordenación en función de los valores ASCII distingue entre mayúsculas y minúsculas, cuyo resultado es una ordenación que distingue mayúsculas y minúsculas. En la tabla siguiente se muestra cómo un criterio de ordenación ascendente en Access es diferente de uno que distingue mayúsculas de minúsculas: Criterio de Ordenación ascendente Ordenación que distingue ordenación previo mayúsculas y minúsculas c a A B A I a I G d b B I c a G G b A B c b d d Aunque los resultados de la columna Ordenación ascendente a primera vista pudieran parecer impredecibles, en realidad no lo son. En la columna Ordenación ascendente, "a" aparece antes de "A" y "B" aparece antes de "b". Esto ocurre porque, cuando se evalúan como valores de texto, "A" = "a" y "B" = "b", ya sean mayúsculas o minúsculas. Access tiene en cuenta el orden original de los valores. En la columna Criterio de ordenación previo, "a" precede a "A" y "B" precede a "b". Cuando se realiza la operación de ordenación que distingue mayúsculas y minúsculas, los valores de texto se reemplazan con sus valores ASCII. Por ejemplo A = 65, a = 97, B = 66, b = 98 y así sucesivamente. Escribir código VBA 1.Cree un módulo VBA y escriba la línea siguiente en la sección Declaraciones si aún no se encuentra en esta sección: Option Explicit 2.Escriba el procedimiento siguiente de un módulo en el Editor de Visual Basic: Function StrToHex (S As Variant) As Variant ' ' Converts a string to a series of hexadecimal digits. ' For example, StrToHex(Chr(9) & "A~") returns 09417E. ' Dim Temp As String, I As Integer If VarType(S) <> 8 Then StrToHex = S Else Temp = "" For I = 1 To Len(S) Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00") Next I StrToHex = Temp End If End Function Se puede llamar a la función anterior StrToHex definida por el usuario desde un consulta. Cuando se pasa el nombre del campo de orden a esta función, ordenará los valores de campo en orden que distingue mayúsculas y minúsculas. 3.Cree ahora una consulta desde la que llamará a esta función. En la ficha Crear, en el grupo Otros, haga clic en Diseño de consulta. 4.En el cuadro de diálogo Mostrar tabla, haga clic en la tabla que desea ordenar y, a continuación, haga clic en Agregar. 5.Arrastre los campos que desea a la cuadrícula. 6.En la primera columna en blanco, en la fila Campo, escriba Expr1: StrToHex([SortField]). StrToHex es la función definida por el usuario que creó anteriormente. SortField es el nombre del campo que contiene los valores que distinguen mayúsculas y minúsculas. 7.En la celda Ordenar, haga clic en Ascendente o Descendente. Si elige orden ascendente, el valor que empieza por mayúsculas aparecerá antes de los que empiezan por minúsculas. Si se aplicar la ordenación descendente, se realiza la operación inversa. 8.Cambie a la vista Hoja de datos. Access muestra los registros ordenados en orden que distingue mayúsculas y minúsculas.