Administrar citas, planes y presupuestos: es muy fácil con Microsoft 365.

Ordenar registros distinguiendo mayúsculas de minúsculas

Nota: Nos gustaría proporcionarle el contenido de ayuda actual lo más rápido posible en su idioma. Esta página se ha traducido mediante un sistema automático y es posible que contenga imprecisiones o errores gramaticales. Nuestro objetivo es que este contenido sea útil para usted. ¿Puede informarnos sobre si la información le ha sido útil al final de la página? Aquí tiene el artículo en inglés para que pueda consultarlo fácilmente.

Microsoft Office Access 2007 ordena los registros en orden ascendente o descendente sin distinguir entre mayúsculas y minúsculas. Sin embargo, si escribe algunas líneas de Visual Basic para aplicaciones (VBA), puede ordenar texto por sus valores de caracteres ASCII. La ordenación en función de los valores ASCII distingue entre mayúsculas de minúsculas y resultados en 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 entre mayúsculas y minúsculas:

Criterio de ordenación previo

Orden ascendente

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

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 ordenación ascendente en primer lugar parezca algo imprevistos, no lo son. En la columna de 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", si en 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 entre mayúsculas y minúsculas, los valores de texto se reemplazan por sus valores ASCII. Por ejemplo, A = 65, un = 97, B = 66, b = 98 y así sucesivamente.

Escribir el código VBA

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

Option Explicit

  1. En un módulo en el Editor de Visual Basic, escriba el siguiente procedimiento:

    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 anterior de definidas por el usuario, StrToHex, se puede llamar desde una consulta. Cuando pasa el nombre del campo de ordenación para esta función, ordenará los valores de campo mayúsculas de minúsculas.

  2. Ahora, cree una consulta desde la que se llama 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, haga clic en Agregar.

  4. Arrastre los campos que desee 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 entre mayúsculas y minúsculas.

  6. En la celda Ordenar , haga clic en ascendente o descendente.

    Si elige orden ascendente, valor que empieza por mayúsculas aparecerá antes que los que empiezan con letras minúsculas. Aplicar a una ordenación descendente realiza lo contrario.

  7. Cambiar a la vista Hoja de datos.

    Access muestra los registros, ordenados distinguiendo mayúsculas.

Principio de página

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
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.

×