Con le funzioni stringa è possibile creare espressioni in Access che modificano il testo in vari modi. Ad esempio, è possibile 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 di stringa più comuni in Access e delle funzioni che si userebbero per eseguirle:
Per… |
Usa il... |
Per esempio... |
Risultati |
---|---|---|---|
Restituire caratteri dall'inizio di una stringa |
=Sinistra([Numero Seriale],2) |
Se [SerialNumber] è "CD234", il risultato è "CD". |
|
Restituire caratteri dalla fine di una stringa |
=Destra([Numero Seriale],3) |
Se [Numero Seriale] è "CD234", il risultato è "234". |
|
Trovare la posizione di un carattere in una stringa |
=InStr(1,[Nome],"i") |
Se [Nome] è "Colin", il risultato è 4. |
|
Restituire caratteri dal centro di una stringa |
=Mid([Numero Seriale],2,2) |
Se [Numero Seriale] è "CD234", il risultato è "D2". |
|
Tagliare gli spazi iniziali o finali da una stringa |
=Taglia([Nome]) |
Se [Nome] è " Colin ", il risultato sarà "Colin". |
|
Unire due stringhe |
Operatore segno più (+) * |
=[Nome] + [Cognome] |
Se [Nome] è "Colin" e [Cognome] è Wilcox, il risultato è "ColinWilcox" |
Unire due stringhe con uno spazio tra di esse |
Operatore segno più (+) * |
=[Nome] + " " + [Cognome] |
Se [Nome] è "Colin" e [Cognome] è Wilcox, il risultato è "Colin Wilcox" |
Modificare la combinazione di lettere maiuscole e minuscole di una stringa |
=UCase([Nome]) |
Se [Nome] è "Colin", il risultato sarà "COLIN". |
|
Determinare la lunghezza di una stringa |
=Len([Nome]) |
Se [Nome] è "Colin", il risultato è 5. |
* Ok, quindi non è una funzione, è un operatore. Tuttavia, è il modo più rapido per unire stringhe. In un database desktop è anche possibile usare l'operatore e commerciale (&) per la concatenazione.
In Access sono disponibili molte altre funzioni correlate al testo. Un buon modo per saperne di più consiste nell'aprire il Generatore di espressioni ed esplorare gli elenchi di funzioni. Il Generatore di espressioni è disponibile quasi ovunque si voglia creare un'espressione, in genere c'è un piccolo pulsante Genera simile al seguente:
Per dimostrare 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 scegliere Visualizzazione Layout. Se non si ha una maschera da usare, fare clic su Crea modulo >.
-
Fare clic con il pulsante destro del mouse su una casella di testo nella maschera e scegliere Proprietà.
-
Nella finestra delle proprietà fare clic su Tutte le > Origine controllo e quindi sul pulsante Genera a destra della casella della proprietà Origine controllo .
-
In Elementi espressioni espandere il nodo Funzioni e fare clic su Funzioni predefinite.
-
In Categorie espressioni fare clic su Testo.
-
In Valori espressioni 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 quelli che funzionano in ogni contesto.
Combinare le 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 in =Left(SerialNumber, 2). Questo è ottimo se sai che hai sempre bisogno dei due caratteri sinistro, ma cosa succede se il numero di caratteri necessario varia da un elemento all'altro? Invece di "codificare" il numero di caratteri, è possibile immettere un'altra funzione che la calcola.
Ecco un esempio di numeri seriali che contengono un trattino in un punto qualsiasi della stringa. Tuttavia, la posizione del trattino varia:
Serialnumber |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Se si vogliono visualizzare solo i numeri a sinistra del trattino, è necessario eseguire ogni volta un calcolo per scoprire dove si trova il segno meno. Un'opzione consiste nell'eseguire un'operazione simile alla seguente:
=Left([Numero Seriale],InStr(1,[Numero Seriale],"-")-1)
Invece di immettere un numero come secondo argomento della funzione Left, è stata collegata la funzione InStr, che restituisce la posizione del segno meno nel numero seriale. Sottrarre 1 da tale valore e ottenere il numero di caratteri corretto per la funzione Left da restituire. All'inizio sembra un po' complicato, ma con un piccolo esperimento è possibile combinare due o più espressioni per ottenere i risultati desiderati.