Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access ordena los registros en orden ascendente o descendente, sin tener en cuenta las mayúsculas y minúsculas. Pero, al escribir algunas líneas de código de Visual Basic para Aplicaciones (VBA), puede ordenar el texto por sus valores de carácter ASCII. Ordenar según los valores ASCII diferencia las letras mayúsculas de las minúsculas y da como resultado 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 al principio podrían parecer algo impredecibles, no lo son. En la columna de orden ascendente, "a" aparece antes de "A" y "B" aparece antes de "b". Esto ocurre porque, al evaluarse como valores de texto, "A" = "a" y "B" = "b", tanto si se trata de minúsculas como mayúsculas. Access tiene en cuenta el orden original de los valores. En la columna Antes del criterio de ordenación, "a" precede a "A" y "B" precede a "b".

Cuando se realiza la operación de ordenación distinguiendo mayúsculas de minúsculas, los valores de texto se reemplazan por sus valores ASCII. Por ejemplo, A = 65, a = 97, B = 66, b = 98 y así sucesivamente.

Escribir el código VBA

  1. Cree un módulo de VBA y escriba la línea siguiente en la sección Declaraciones, si aún no existe:

    Option Explicit

  2. Escriba 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 Function
    

    La función definida por el usuario anterior, StrToHex, se puede llamar desde una consulta. Al pasar el nombre del campo Ordenar a esta función, ordenará los valores del campo en orden que distingue mayúsculas de minúsculas.

  3. Ahora, cree una consulta desde la que llamará a esta función.

    En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  4. Seleccione Agregar tablas (Mostrar tabla en Access).

  5. Arrastre los campos que quiera para 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 de minúsculas.

  7. En la celda Orden, haga clic en Ascendente o Descendente.

    Si elige un orden ascendente, aparecerá un valor que comienza con letras mayúsculas antes de los que comienzan por letras minúsculas. Aplicar un orden descendente hace lo contrario.

  8. Cambiar a vista Hoja de datos.

    Access muestra los registros, ordenados en un orden que distingue mayúsculas de minúsculas.

Volver al principio

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.