Ordenar registos por maiúsculas e minúsculas

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

Microsoft Office Access 2007 ordena registos em ordem ascendente ou descendente consideração maiúsculas/minúsculas. No entanto, ao escrever algumas linhas de Visual código Basic for Applications (VBA), pode ordenar texto por valores ASCII de carateres. Ordenar com base nos valores ASCII diferencia as letras maiúsculas da letras em minúsculas e os resultados por uma ordem entre maiúsculas e minúsculas.

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

Sequência de ordenação pré

Por ordem ascendente

Rdenar pela ordem entre maiúsculas e minúsculas r

c

muito bom

A

D

A

B

muito bom

B

C

d

bom

D

B

c

muito bom

C

C

bom

A

D

c

bom

d

d

Apesar dos resultados na coluna ordem ascendente poderão na primeira aparecer um pouco inesperados, não estiverem. Na coluna ordem ascendente, "um" aparece antes de "A" e "B" é apresentado antes de "b". Isto ocorre porque, quando avaliadas como valores de texto, "A" = "um" e "B" = "b", quer em maiúsculas ou minúsculas. Acesso leva em consideração a ordem dos valores original. Na coluna sequência de ordenação de pré-lançamento, "um" precede "A" e "B" precede "b".

Quando é efetuada a operação de ordenação entre maiúsculas e minúsculas, os valores de texto são substituídos pelos valores correspondentes ASCII. Por exemplo, A = 65; um = 97, B = 66, b = 98 e assim sucessivamente.

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á:

Opção explícita

  1. Escreva o seguinte procedimento 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 anterior função definida pelo utilizador, StrToHex, pode ser chamada a partir de uma consulta. Quando passar com o nome do campo de ordenação para esta função, irá ordenar os valores do campo na ordem de maiúsculas e minúsculas.

  2. Agora, crie uma consulta a partir do qual ligarem esta função.

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

  3. Na caixa de diálogo Mostrar tabela , clique na tabela à qual pretende ordenar, em seguida, clique em Adicionar.

  4. Arraste os campos que pretende para a grelha.

  5. 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 entre maiúsculas e minúsculas.

  6. Na célula Ordenar , clique em ascendente ou descendente.

    Se optar por ordem ascendente, o valor que começa com letras maiúsculas aparecerá antes de as que começam com letras em minúsculas. Aplicar uma ordenação descendente de ordem é o oposto.

  7. Mude para vista de folha de dados.

    O Access apresenta os registos, ordenados por ordem em maiúsculas e minúsculas.

Início da Página

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×