Classificar registros na ordem que distingue maiúsculas de minúsculas

Access classifica os registros em ordem crescente ou decrescente, independentemente do caso. No entanto, escrevendo algumas linhas de código do Visual Basic for Applications (VBA), você pode classificar o texto por seus valores de caracteres ASCII. A classificação com base nos valores ASCII diferencia as letras maiúsculas das minúsculas e resulta em uma ordem que diferenciar maiúsculas de minúsculas.

A tabela a seguir demonstra como uma ordem de classificação crescente no Access difere de uma ordem de classificação que diferencia maiúsculas de minúsculas:

Ordem de pré-classificação

Ordem crescente

Ordenar diferenciando maiú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

Embora os resultados na coluna em ordem Crescente possam inicialmente parecer um tanto imprevisíveis, mas eles não são. Na coluna de ordem Crescente, "a" aparece antes de "A" e "B" aparece antes de "b". Isso ocorre porque, quando avaliados como valores de texto, "A" = "a" e "B" = "b", sejam eles minúsculos ou maiúsculos. O acesso leva em consideração a ordem original dos valores. Na coluna ordem de Pré-classificação, "a" precede "A", e "B" precede "b".

Quando a operação de classificação que diferencia maiúsculas de minúsculas é executada, os valores de texto são substituídos por seus valores ASCII. Por exemplo, A = 65, a = 97, B = 66, b = 98, e assim por diante.

Escreva o código VBA

  1. Crie um módulo VBA e digite a seguinte linha na seção Declarações, se ainda não estiver lá:

    Option Explicit

  2. Digite o seguinte procedimento em um módulo no Editor do 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

    A função definida pelo usuário anterior, StrToHex, pode ser chamada a partir de uma consulta. Quando você passa o nome do campo de classificação para esta função, ela classificará os valores do campo ordenando com diferenciação entre maiúsculas e minúsculas.

  3. Agora, crie uma consulta a partir da qual você vai chamar esta função.

    Na guia Criar, no grupo Consultas, clique em Design da Consulta.

  4. Selecione Adicionar Tabelas (Mostrar Tabela em Access 2013).

  5. Arraste os campos que deseja para a grade.

  6. Na primeira coluna em branco, na linha Campo, digite Expr1: StrToHex([SortField]).

    StrToHex é a função definida pelo usuário que você criou anteriormente. SortField é o nome do campo que contém os valores que diferenciam maiúsculas e minúsculas.

  7. Na célula Classifica , clique em Crescente ou Decrescente.

    Se você escolher a ordem crescente, o valor que começa com letras maiúsculas aparecerá antes dos que começam com letras minúsculas. A aplicação de uma ordem decrescente faz o contrário.

  8. Alterne para o modo de exibição de Folha de dados.

    O Access exibe os registros, classificados em ordem de distinção entre maiúsculas e minúsculas.

Início da página

Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×