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

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

O Microsoft Office Access 2007 classifica registros na ordem crescente ou decrescente, independentemente da capitalização. Entretanto, escrevendo poucas linhas de código VBA (Visual Basic for Applications), você pode classificar texto por seus valores ASCII de caractere. A classificação com base nos valores ASCII diferencia letras maiúsculas de letras minúsculas e resulta na ordem que distingue maiúsculas e minúsculas.

A tabela a seguir demonstra como uma ordem de classificação crescente no Access é diferente da ordem que distingue maiúsculas de minúsculas:

Ordem de pré-classificação

Ordem crescente

Ordem de maiusculas e minúsculas r

c

a

A

D

Uma

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Embora os resultados na coluna de ordem crescente possa, em um primeiro momento, parecer imprevisível, eles não são. Na coluna 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," independentemente da capitalização. O Access considera 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 de distingue maiúsculas de minúsculas é executada, os valores de texto são substituídos pelos 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 digite a seguinte linha na seção Declarações, se ela ainda não estiver lá:

Option Explicit

  1. Digite o procedimento a seguir em um 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 anterior, StrToHex, definida pelo usuário, pode ser chamada a partir de uma consulta. Quando você transmite o nome do campo de classificação a essa função, ela classifica os valores do campo na ordem que distingue maiúsculas de minúsculas.

  2. Agora, crie uma consulta da qual será possível chamar essa função.

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

  3. Na caixa de diálogo Mostrar Tabela, clique na tabela que você deseja classificar e, em seguida, clique em Adicionar.

  4. Arraste os campos desejados para a grade.

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

    StrToHex é a função definida pelo usuário, criada anteriormente. SortField é o nome do campo que contém os valores que distinguem maiúsculas de minúsculas.

  6. Na célula Classificar, clique em Crescente ou Decrescente.

    Se você escolher a ordem crescente, o valor que começa com letra maiúscula será exibido antes daquele que começa com letra minúscula. A aplicação da classificação de ordem decrescente exibe o oposto.

  7. Alterne para o modo Folha de Dados.

    O Access exibe os registros classificados na ordem que distingue maiúsculas de minúsculas.

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
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.

×