Ordinare i record con distinzione tra maiuscole e minuscole

Nota: Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l'articolo in lingua inglese per riferimento.

Microsoft Office Access 2007 record verranno ordinati in ordine crescente o decrescente senza maiuscole/minuscole. Tuttavia, scrivendo alcune righe di Visual Basic, Applications Edition (VBA), è possibile ordinare testo per i valori dei caratteri ASCII. Ordinamento in base ai valori ASCII consentono di distinguere le lettere maiuscole da lettere minuscole e i risultati in un ordine di maiuscole e minuscole.

Nella tabella seguente vengono illustrate le differenze tra un ordinamento crescente in Access da un ordinamento maiuscole e minuscole:

Prima dell'ordinamento

Ordine crescente

Base maiuscole e minuscole r

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 di ordinamento crescente potrebbero è visualizzato un po' imprevisti, non sono. Nella colonna ordine crescente, "un" viene visualizzato prima "A" e "B" prima "b". Ciò avviene perché, quando viene valutata come valori di testo, "A" = "un" e "B" = "b", se maiuscola o minuscola. Access prende in considerazione l'ordine originale dei valori. Nella colonna pre-ordinamento "a" precede "A" e "B" precede "b".

Quando viene eseguita l'operazione di ordinamento maiuscole e minuscole, i valori di testo vengono sostituiti con i rispettivi valori ASCII. Ad esempio, = 65; un = 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 non è già presente:

Option Explicit

  1. Digitare la procedura seguente in un modulo di 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 ordinamento a questa funzione, esso verrà ordinare i valori dei campi in ordine maiuscole e minuscole.

  2. A questo punto, creare una query da cui si eseguiranno una 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, quindi fare clic su Aggiungi.

  4. Trascinare i campi desiderati alla 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 di maiuscole e minuscole.

  6. Nella cella ordinamento , fare clic su crescente o decrescente.

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

  7. Passare alla visualizzazione Foglio dati.

    Verranno visualizzati i record, disposti in ordine di maiuscole e minuscole.

Inizio pagina

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

Queste informazioni sono risultate utili?

Grazie per il feedback!

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

×