Ordenar registros distinguiendo mayúsculas de minúsculas

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

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 previo

Ordenación ascendente

Según distingue mayúsculas de minúsculas r

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

  1. 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.

  2. 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 la consulta.

  3. En el cuadro de diálogo Mostrar tabla, haga clic en la tabla que desea ordenar y, a continuación, haga clic en Agregar.

  4. Arrastre los campos que desea a la cuadrícula.

  5. 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.

  6. 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.

  7. Cambie a la vista Hoja de datos.

    Access muestra los registros ordenados en orden que distingue mayúsculas y minúsculas.

Volver al principio

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×