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

Access ordina i record in ordine crescente o decrescente senza tener conto delle maiuscole/minuscole. Tuttavia, scrivendo poche righe di codice Visual Basic, Applications Edition (VBA), è possibile ordinare il testo in base ai valori dei caratteri ASCII. L’ordinane in base ai valori dei caratteri ASCII differenzia le lettere maiuscole da quelle minuscole e dà come risultato un ordine con distinzione tra maiuscole e minuscole.

La tabella seguente illustra come un ordine crescente si distingua da un ordine con distinzione tra maiuscole/minuscole:

Pre-ordine

Ordine crescente

Ordine con distinzione tra maiuscole e minuscole

c

a

A

D

A

B

a

B

C

g

b

D

B

c

a

C

C

b

A

D

c

b

g

g

Anche se i risultati nella colonna Ordine crescente possono apparire piuttosto imprevedibili, in realtà non lo sono. Nella colonna Ordine crescente, “a” appare prima di “A” e “B” appare prima di “b”. Questo si verifica perché, quando valutate come valori di testo, “A" = "a" e "B" = "b", sia se lettera minuscola che lettera maiuscola. Access tiene conto dell’ordine originario dei valori. Nella colonna di pre-ordine, "a" precede "A" e "B" precede "b."

Quando viene eseguita l’operazione di ordine con distinzione tra maiuscole/minuscole, i valori di testo vengono sostituti con i loro valori ASCII. Ad esempio, A = 65, a = 97, B = 66, b = 98 e così via.

Scrivere il codice VBA

  1. Creare un modulo VBA e digitare la riga seguente nella sezione Dichiarazioni, se già non presente:

    Option Explicit

  2. Digitare la procedura seguente in un modulo nel 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
    

    La precedente funzione definita dall'utente, StrToHex, può essere chiamata da una query. Quando si passa il nome del campo di ordine a questa funzione, i valori del campo saranno ordinati secondo un ordine con distinzione tra maiuscole e minuscole.

  3. Creare ora una query dalla quale chiamare questa funzione.

    Nel gruppo Query della scheda Crea fare clic su Struttura query.

  4. Selezionare Aggiungi tabelle (Mostra tabella in Access).

  5. Selezionare i campi desiderati sulla griglia.

  6. Nella prima colonna vuota, nella riga Campo, digitare Expr1: StrToHex([SortField]).

    StrToHex è la funzione definita dall’utente creata i precedenza. SortField è il nome del campo che contiene i valori con distinzione tra maiuscole/minuscole.

  7. Nella cella Ordine fare clic su Crescente o Decrescente.

    Se si sceglie ordine crescente, il valore che inizia con le lettere maiuscole verrà visualizzato prima di quelli che iniziano con le lettere minuscole. Applicando un ordine decrescente si ottiene il risultato opposto.

  8. Passa a Visualizzazione Foglio dati.

    Access consente di visualizzare i record con un ordine con distinzione tra maiuscole e minuscole.

Inizio pagina

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.