Le funzioni stringa consentono di creare espressioni di Access che modificano il testo in vari modi. Si potrebbe, ad esempio, visualizzare solo una parte di un numero seriale in una maschera. In alternativa, potrebbe essere necessario unire (concatenare) più stringhe, ad esempio un cognome e un nome. Se non si è ancora esperti di espressioni, vedere Creare un'espressione.
Ecco un elenco di alcune delle operazioni sulle stringhe più comuni in Access e delle funzioni che è possibile usare per eseguirle:
| Per… | Usa il... | Per esempio... | Risultati |
|---|---|---|---|
| Restituire caratteri dall'inizio di una stringa | Funzione Left | =Left([SerialNumber],2) | Se [SerialNumber] è "CD234", il risultato è "CD". |
| Restituire caratteri dalla fine di una stringa | Funzione Right | =Destra([SerialNumber],3) | Se [SerialNumber] è "CD234", il risultato è "234". |
| Trovare la posizione di un carattere in una stringa | Funzione InStr | =InStr(1;[Nome];"i") | Se [Nome] è "Colin", il risultato è 4. |
| Restituire caratteri dalla parte centrale di una stringa | Funzione Mid | =MID([SerialNumber];2;2) | Se [SerialNumber] è "CD234", il risultato è "D2". |
| Tagliare gli spazi iniziali o finali da una stringa | Funzioni LTrim, RTrim e Trim | =Trim([Nome]) | Se [Nome] è " Colin ", il risultato è "Colin". |
| Unire due stringhe | Operatore segno di addizione (+)* | =[Nome] + [Cognome] | Se [Nome] è "Colin" e [Cognome] è Wilcox, il risultato è "ColinWilcox" |
| Unire due stringhe tra di esse aggiungendo uno spazio | Operatore segno di addizione (+)* | =[Nome] + " " + [Cognome] | Se [Nome] è "Colin" e [Cognome] è Wilcox, il risultato è "Colin Wilcox" |
| Impostare maiuscole o minuscole su maiuscole o minuscole per una stringa | Funzione UCase o Funzione LCase | =UCase([Nome]) | Se [Nome] è "Colin", il risultato è "COLIN". |
| Determinare la lunghezza di una stringa | LUNGHEZZA | =Len([Nome]) | Se [Nome] è "Colin", il risultato è 5. |
* Ok, quindi non è una funzione, è un operatore. Tuttavia, è il modo più rapido per unire le stringhe. In un database desktop è anche possibile usare l'operatore e commerciale (&) per la conmeditazione.
In Access sono disponibili molte altre funzioni correlate al testo. Un buon modo per altre informazioni è aprire il Generatore di espressioni ed esplorare gli elenchi di funzioni. Il Generatore di espressioni è disponibile quasi ovunque tu voglia creare un'espressione, in genere è presente un piccolo pulsante Genera che ha questo aspetto:
Per illustrare il Generatore di espressioni, aprirlo dalla proprietà Origine controllo in una maschera o in una visualizzazione. Usare una delle procedure seguenti, a seconda che si usi un database desktop o un'app Web di Access.
Visualizzare il Generatore di espressioni in un database desktop
Aprire un database desktop (con estensione accdb).
Premere F11 per aprire il riquadro di spostamento, se non è già aperto.
Se è già disponibile una maschera, fare clic con il pulsante destro del mouse su di essa nel riquadro di spostamento e quindi scegliere Visualizzazione Layout. Se non si ha un modulo su cui lavorare, fare clic su Crea>modulo.
Fare clic con il pulsante destro del mouse su una casella di testo nella maschera e quindi scegliere Proprietà.
Nella finestra delle proprietà fare clic su Tutta>l'origine dei controlli e fare clic
sul lato destro della finestra della proprietà Origine controllo.
In Elementi espressione espandere il nodo Funzioni e fare clic su Funzioni predefinite.
In Categorie di espressioni fare clic su Testo.
In Valori espressione fare clic sulle varie funzioni e leggere le brevi descrizioni nella parte inferiore del Generatore di espressioni.
Nota
Non tutte queste funzioni sono disponibili in tutti i contesti; Access filtra automaticamente l'elenco in base a quali funzionano in ogni contesto.
Combinare funzioni di testo per una maggiore flessibilità
Alcune funzioni stringa hanno argomenti numerici che, in alcuni casi, è necessario calcolare ogni volta che si chiama la funzione. Ad esempio, la funzione Left accetta una stringa e un numero, come =Left(SerialNumber, 2). Questa opzione è ottima se sai che ti servono sempre i due caratteri rimasti, ma cosa succede se il numero di caratteri necessari varia da elemento a oggetto? Invece di semplicemente "codificare" il numero di caratteri, è possibile immettere un'altra funzione che lo calcola.
Ecco un esempio di numeri seriali contenenti ognuno un trattino in un punto qualsiasi della stringa. Tuttavia, la posizione del trattino varia:
| SerialNumber |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Se vuoi visualizzare solo i numeri a sinistra del trattino, devi eseguire ogni volta un calcolo per scoprire dove si trova il trattino. Un'opzione consiste nel fare qualcosa di simile al seguente:
=Left([SerialNumber],InStr(1,[SerialNumber],"-")-1)
Anziché immettere un numero come secondo argomento della funzione Left, è stata inserita la funzione InStr, che restituisce la posizione del trattino nel numero di serie. Sottraendo 1 da questo valore si ottiene il numero corretto di caratteri restituito dalla funzione Left. All'inizio sembra un po' complicato, ma con un po' di sperimentazione puoi combinare due o più espressioni per ottenere i risultati che desideri.