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

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 no Access).

  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?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.