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

Access ordena os registos por ordem ascendente ou descendente independente do caso. Contudo, ao escrever algumas linhas de código VBA (Visual Basic for Applications), pode ordenar o texto por valores de carateres ASCII. A ordenação com base nos valores ASCII distingue as letras maiúsculas das minúsculas e resulta numa ordem sensível às maiúsculas e minúsculas.

A seguinte tabela demonstra como uma sequência de ordenação ascendente no Access difere de uma sequência de ordenação sensível às maiúsculas e minúsculas:

Pré-sequência de ordenação

Ordem ascendente

Ordenar por maiúsculas e minúsculas

c

a

A

D

A

B

a

B

C

d

b

D

N

c

a

C

C

b

A

D

c

b

d

d

Apesar de os resultados na coluna em ordem Ascendente pareçam estar apresentados de forma imprevisível, eles não o estão. Na coluna em ordem Ascendente, é apresentado o nome "a" antes de "A" e "B" é apresentado antes de "b". Isso ocorre porque, quando avaliados como valores de texto, "A" = "a" e "B" = "b", sejam eles em minúsculas ou em maiúsculas. O Access leva em conta a ordem original dos valores. Na coluna de ordem de Pré-sequência de ordenação, "a" precede "A" e "B" precede "b".

Quando a operação de classificação sensível às maiúsculas e 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.

Escrever o código VBA

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

    Option Explicit

  2. Escreva o procedimento seguinte num módulo no Visual Basic Editor:

    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 utilizador anterior, StrToHex, pode ser chamada a partir de uma consulta. Quando passa o nome do campo de ordenação para esta função, ela irá ordenar os valores de campo numa ordem sensível às maiúsculas e minúsculas.

  3. Agora, crie uma consulta a partir da qual irá chamar esta função.

    No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.

  4. Selecione Adicionar Tabelas (Mostrar Tabela no Access).

  5. Arraste os campos que pretende para a grelha.

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

    StrToHex é a função definida pelo utilizador que criou anteriormente. SortField é o nome do campo que contém os valores sensíveis às maiúsculas e minúsculas.

  7. Na célula Classificar, clique em Ascendente ou Decrescente.

    Se selecionar ordem ascendente, será apresentado o valor que começa com letras maiúsculas antes das que começam com letras minúsculas. Aplicar uma ordenação descendente faz o oposto.

  8. Mudar para a Vista de Folha de Dados.

    O Access apresenta os registos, ordenados em ordem sensível às maiúsculas e minúsculas.

Início da Página

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.