Access ordena los registros en orden ascendente o descendente, sin tener en cuenta las mayúsculas y minúsculas. Sin embargo, puede escribir algunas líneas de código de Visual Basic para Aplicaciones (VBA) para ordenar el texto por sus valores de caracteres ASCII. Al ordenar por valores ASCII, se distinguen las letras mayúsculas de las minúsculas y queda un orden que distingue mayúsculas de minúsculas.
En la tabla siguiente se muestra cómo un criterio de ordenación ascendente en Access difiere de un criterio de ordenación que distingue mayúsculas de minúsculas:
| Antes del criterio de ordenación | Orden ascendente | Ordenar distinguiendo mayúsculas de minúsculas |
|---|---|---|
| c | a | A |
| D | A | B |
| a | B | C |
| d | b | D |
| B | c | a |
| C | C | b |
| A | D | c |
| b | d | d |
Aunque los resultados en la columna de orden ascendente pueden parecer impredecibles al principio, no lo son. En esa columna, "a" aparece antes de "A" y "B" aparece antes de "b". Esto sucede porque, cuando Access los evalúa como valores de texto, "A" = "a" y "B" = "b", tanto si son minúsculas como mayúsculas. Access usa entonces el orden original de los valores. En la columna Antes del criterio de ordenación , "a" aparece antes de "A" y "B" viene antes de "b".
Cuando se ejecuta la ordenación que distingue mayúsculas de minúsculas, los valores de texto se reemplazan por sus valores ASCII. Por ejemplo, A = 65, a = 97, B = 66 y b = 98.
Escribir el código VBA
Cree un módulo de VBA. En la sección Declaraciones , escriba la línea siguiente si aún no existe:
Option ExplicitEscriba el procedimiento siguiente en un módulo del 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 FunctionLa función definida por
StrToHexel usuario se puede llamar desde una consulta. Al pasar el nombre del campo Ordenar a esta función, ordena los valores del campo en orden que distingue mayúsculas de minúsculas.Cree una consulta que llame a esta función. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.
Seleccione Agregar tablas (Mostrar tabla en Access).
Arrastre los campos que quiera para la cuadrícula.
En la primera columna en blanco, en la fila Campo , escriba
Expr1: StrToHex([SortField]).StrToHexes la función definida por el usuario que creó anteriormente. ReempláceloSortFieldpor el nombre del campo que contiene los valores que distinguen mayúsculas de minúsculas.En la celda Orden, haga clic en Ascendente o Descendente. Si elige un orden ascendente, los valores que comienzan con letras mayúsculas aparecen antes que los valores que comienzan por letras minúsculas. El orden descendente hace lo contrario.
Cambiar a vista Hoja de datos. Access muestra los registros, ordenados en un orden que distingue mayúsculas de minúsculas.