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

Observação: Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. No final da página, deixe sua opinião se estas informações foram úteis para você. Aqui está o artigo em inglês para facilitar a referência.

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

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

Ordem de classificação prévia

Ordem crescente

Orde diferenciaNdo maiúsculas de minúsculas r

c

Um gráfico de barras

A

D

A

B

Um gráfico de barras

B

C

d

b

D

B

c

Um gráfico de barras

C

C

b

A

D

c

b

d

d

Embora os resultados na coluna ordem crescente, a primeira pode ser exibido de certa forma imprevisível, eles não são. Na coluna ordem crescente, "a" aparece antes de "A" e "B" aparecer antes de "B". Isso ocorre porque, quando avaliados como valores de texto, "A" = "a" e "B" = "B", seja minúsculas ou maiúsculas. O Access leva em conta a ordem original dos valores. Na coluna ordem de classificação anterior, "a" precede "A" e "B" precede "B".

Quando a operação de classificação 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

  1. Digite o procedimento a seguir 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ê passar o nome do campo de classificação para essa função, ele classificará os valores de campo na ordem que diferencia maiúsculas de minúsculas.

  2. Agora, crie uma consulta a partir da qual você vai 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 que você criou anteriormente. SortField é o nome do campo que contém os valores que diferenciam maiúsculas de minúsculas.

  6. Na célula classificar , clique em crescente ou decrescente.

    Se você escolher ordem ascendente, o valor começando com letras maiúsculas será exibido antes daqueles que começarem com letras minúsculas. A aplicação de uma classificação de ordem decrescente faz o oposto.

  7. Alternar para o modo folha de dados.

    O Access exibe os registros, classificados em ordem que diferencia maiúsculas de minúsculas.

Topo da Página

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.

×