Ordinare i record con distinzione tra maiuscole e minuscole

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

In Microsoft Office Access 2007 i record vengono ordinati in senso crescente o decrescente senza che venga effettuata alcuna distinzione tra maiuscole e minuscole. È tuttavia possibile scrivere poche righe di codice Visual Basic, Applications Edition (VBA) per eseguire l'ordinamento di testo in base ai valori dei caratteri ASCII corrispondenti. L'ordinamento eseguito sulla base dei valori ASCII consente di distinguere le lettere maiuscole da quelle minuscole, determinando in tal modo un ordinamento con distinzione tra maiuscole e minuscole.

Nella tabella seguente viene illustrata la differenza tra l'ordinamento crescente eseguito in Access e l'ordinamento con distinzione tra maiuscole e minuscole:

Prima dell'ordinamento

Ordinamento crescente

Base maiuscole e minuscole r

c

a

C

D

A

T

a

T

T

D

b

D

T

c

a

T

T

b

C

D

c

b

D

D

Sebbene a un primo sguardo i risultati della colonna Ordinamento crescente possono sembrare imprevedibili, essi in realtà non lo sono. Nella colonna Ordinamento crescente, infatti, "a" viene visualizzato prima di "A" e "B" prima di "b". Questo risultato si ottiene perché, quando viene eseguita la valutazione come valori di testo, "A" è uguale a "a" e "B" è uguale a "b," indipendentemente dal fatto che le lettere siano maiuscole o minuscole. In Access viene tenuto conto dell'ordinamento originale dei valori. Nella colonna Prima dell'ordinamento "a" precede "A" e "B" precede "b."

Quando si esegue l'operazione di ordinamento con distinzione tra maiuscole e minuscole, i valori di testo vengono sostituiti con i valori ASCII corrispondenti. 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 delle dichiarazioni, se non è già presente:

Option Explicit

  1. Digitare la procedura seguente in un modulo in 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, ovvero StrToHex, può essere chiamata da una query. Quando a questa funzione viene passato il nome del campo in base al quale eseguire l'ordinamento, i valori di campo vengono ordinati con distinzione tra maiuscole e minuscole.

  2. Creare quindi una query dalla quale verrà chiamata questa funzione.

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

  3. Nella finestra di dialogo Mostra tabella fare clic sulla tabella che si desidera ordinare e quindi fare clic su Aggiungi.

  4. Trascinare i campi desiderati nella griglia.

  5. Nella prima colonna vuota nella riga campo digitare Expr1: StrToHex([SortField]).

    StrToHex è la funzione definita dall'utente creata in precedenza. CampoOrdinamento è il nome del campo che contiene i valori .

  6. Nella cella Ordinamento fare clic su Crescente o Decrescente.

    Se si sceglie l'ordinamento crescente, i valori che iniziano con lettere maiuscole verranno riportati prima di quelli che iniziano con lettere minuscole. Se si applica l'ordinamento decrescente, si otterrà il risultato contrario.

  7. Passare alla visualizzazione Foglio dati.

    Verranno visualizzati i record ordinati con distinzione tra maiuscole e minuscole.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×