Creare una regola di convalida per convalidare i dati in un campo
Applies ToAccess per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Le regole di convalida consentono di controllare approfonditamente o convalidare i dati nei database desktop di Access durante l'immissione. È possibile usare il generatore di espressioni per formattare correttamente la regola. Le regole di convalida possono essere configurate nella struttura della tabella o nella visualizzazione Foglio dati tabella. Esistono tre tipi di regole di convalida in Access:

1. Regola di convalida campo   È possibile usare una regola di convalida campo per specificare un criterio che deve essere soddisfatto da tutti i valori dei campi validi. Non è necessario specificare il campo corrente come parte della regola, a meno che non si usi il campo in una funzione.  Le restrizioni sui tipi di caratteri da immettere in un campo possono risultare più semplici usando una maschera di input. Ad esempio, un campo Data può avere una regola di convalida che non consente valori con date passate.

Esempi rapidi:

Non consentire valori di data nel passato: >=Date()

Formato di posta elettronica generalmente accettato: Null OR ((Like "*?@?*.? *") AND (Not Like "*[ ,;] *"))

Numero minore o uguale a cinque: <=5

Il campo valuta non può essere negativo: >=0

Limitare la lunghezza dei caratteri nella stringa: Len([NomeCampoStringa])<100

Regola di convalida campo in Progettazione tabelle di Access

2. Regola di convalida record   È possibile usare una regola di convalida dei record per specificare una condizione che deve essere soddisfatta da tutti i record validi. Con questa regola si possono confrontare i valori in campi diversi. Nel caso di un record con due campi data è possibile specificare che i valori di un campo debbano sempre precedere quelli dell'altro campo, ad esempio il valore di DataInizio deve essere precedente a quello di DataFine.

Esempi rapidi:

Verificare che la data di fine non venga prima della data di inizio: [Data fine]>=[Data inizio]

Immettere una data obbligatoria non superiore a 30 giorni dopo la data dell'ordine: [DataRichiesta]<=[DataOrdine]+30

Regola di convalida delle tabelle in Progettazione tabelle di Access.

3. Convalida in una maschera   È possibile usare la proprietà Valido se di un controllo in una maschera per specificare un criterio che deve essere soddisfatto da tutti i valori immessi nel controllo. Il funzionamento della proprietà del controllo Valido se è analogo a quello di una regola di convalida campo. In genere viene usata una regola di convalida modulo invece di una regola di convalida campo se la regola si applica solo al modulo e non alla tabella, indipendentemente da dove viene usata.

In questo articolo

Panoramica

In questo articolo viene illustrato l'utilizzo di regole di convalida e messaggi di convalida nei campi di tabella e controlli di maschera. Una regola di convalida consente di limitare l'input in un campo di tabella o un controllo, ad esempio una casella di testo, in una maschera. Il messaggio di convalida consente di specificare un messaggio per spiegare il motivo per cui i dati di input non sono validi.

Durante l'immissione dei dati viene verificato automaticamente se l'input viola una regola di convalida e, in caso di violazione, viene visualizzato un messaggio.

È possibile limitare l'input in Access in molti modi diversi:

  • Tipi di dati   A ogni campo di tabella è associato un tipo di dati per limitare l'input dell'utente. Ad esempio, in un campo Data/ora sono accettate solo date e ore, in un campo Valuta sono accettati solo dati di valuta e così via.

  • Proprietà dei campi   È possibile limitare l'input di dati con alcune proprietà dei campi. Ad esempio, la proprietà Dimensione campo di un campo consente di limitare la quantità dei dati immessi.

    È anche possibile usare la proprietà Valido se per richiedere valori specifici e la proprietà Messaggio errore per notificare eventuali errori agli utenti. L'immissione della regola >100 And <1000 nella proprietà Valido se, ad esempio, consente agli utenti di immettere esclusivamente valori compresi tra 100 e 1.000. La regola [DataFine]>=[DataInizio], ad esempio, impone agli utenti di immettere una data di fine corrispondente o successiva a una data di inizio. L'immissione di un testo simile a "Immettere valori compresi tra 100 e 1.000" o "Immettere una data di fine corrispondente o successiva alla data di inizio" nella proprietà Messaggio errore indica agli utenti eventuali errori e le relative soluzioni.

  • Maschere di input   È possibile usare una maschera di input per convalidare i dati facendo in modo che gli utenti immettano i valori in un modo specifico. Una maschera di input, ad esempio, può imporre agli utenti di immettere le date in un formato europeo, ad esempio 2007.04.14.

È possibile utilizzare questi metodi di convalida dei dati sia singolarmente che combinati tra loro. I tipi di dati non sono facoltativi e costituiscono il metodo più semplice di convalida dei dati.

Per altre informazioni su tipi di dati, dimensioni dei campi e maschere di input, vedere l'articolo Introduzione ai tipi di dati e alle proprietà dei campi.

Tipi di regole di convalida

È possibile creare i due tipi di regole di convalida di base seguenti:

  • Regole di convalida campo   Usare una regola di convalida campo per verificare il valore immesso in un campo quando si esce dal campo. Supponiamo ad esempio di avere un campo di tipo Data e di immettere >=#01/01/2010# nella proprietà Valido se del campo. Con questa regola sarà possibile immettere solo le date corrispondenti o successive all'1 gennaio 2010. Se si immette una data anteriore al 2010 e quindi si tenta di spostare lo stato attivo su un altro campo, non sarà possibile uscire dal campo corrente se prima non si risolve il problema.

  • Regole di convalida record   Usare una regola di convalida record per definire i casi in cui è possibile salvare un record, ovvero una riga in una tabella. Diversamente dalle regole di convalida campo, le regole di convalida record fanno riferimento ad altri campi della stessa tabella. Creare regole di convalida record quando occorre verificare i valori di un campo rispetto ai valori di un altro campo. Supponiamo ad esempio che in un'azienda i prodotti debbano essere spediti entro 30 giorni e che, se non si rispetta tale condizione, sia necessario rimborsare parte del prezzo di acquisto al cliente. In una situazione di questo tipo è possibile definire una regola di convalida record come [DataRichiesta]<=[DataOrdine]+30 per impedire l'immissione di una data di spedizione, corrispondente al valore del campo DataRichiesta, troppo lontana nel tempo.

Se la sintassi delle regole di convalida risulta di difficile comprensione, vedere la sezione Sintassi corretta di una regola di convalida per una spiegazione della sintassi e per alcune regole di convalida di esempio.

Casi in cui è possibile utilizzare le regole di convalida

È possibile definire regole di convalida per campi di tabelle e controlli di maschere. Quando si definiscono regole per le tabelle, tali regole si applicano all'importazione dei dati. Per aggiungere regole di convalida a una tabella, aprire la tabella e usare i comandi della scheda Campi tabella della barra multifunzione. Per aggiungere regole di convalida a una maschera, aprire la maschera in visualizzazione Layout e aggiungere le regole alle proprietà dei singoli controlli.

Nelle procedure incluse nella sezione Aggiungere una regola di convalida a una tabella viene illustrata l'aggiunta di regole di convalida ai campi di tabella. Nelle procedure incluse nella sezione Aggiungere una regola di convalida a un controllo in una maschera, più avanti in questo articolo, viene illustrata l'aggiunta di regole di convalida alle proprietà di singoli controlli.

Sintassi corretta di una regola di convalida

Le regole di convalida possono contenere espressioni, ovvero funzioni che restituiscono un singolo valore. È possibile usare le espressioni per eseguire calcoli, modificare caratteri o verificare dati. Le espressioni delle regole di convalida testano i dati. Un'espressione consente di verificare un valore di una serie di valori, ad esempio "Tokyo" Or "Mosca" Or "Parigi" Or "Helsinki". Tramite le espressioni, inoltre, è possibile eseguire operazioni matematiche. L'espressione <100, ad esempio, impone agli utenti di immettere solo valori minori di 100. L'espressione ([DataOrdine] - [DataSpedizione]) calcola il numero di giorni trascorsi tra la data in cui è stato effettuato un ordine e quella in cui l'ordine è stato spedito.

Per altre informazioni sulle espressioni, vedere l'articolo Generare un'espressione.

Inizio pagina

Aggiungere una regola di convalida a una tabella

È possibile aggiungere una regola di convalida per campo e/o una regola di convalida per record. La regola di convalida per campo verifica i dati immessi in un campo e viene applicata quando il campo perde lo stato attivo. La regola di convalida per record verifica i dati immessi in uno o più campi e viene applicata quando il record perde lo stato attivo. La regola di convalida per record consente in genere di confrontare i valori di due o più campi.

Note: I tipi di campo seguenti non supportano le regole di convalida:

  • Contatore

  • Oggetto OLE

  • Allegato

  • ID replica

Creare una regola di convalida per campo

  1. Selezionare il campo che si desidera convalidare.

  2. Nel gruppo Convalida campo della scheda Campi tabella fare clic su Convalida e quindi su Regola di convalida campo.

  3. Utilizzare il Generatore di espressioni per creare la regola. Per ulteriori informazioni sull'utilizzo del Generatore di espressioni, vedere l'articolo Utilizzare il Generatore di espressioni.

Creare un messaggio da visualizzare quando i dati immessi nel campo non sono validi

  1. Selezionare un campo per il quale creare un messaggio di input non valido. Per il campo deve essere già stata definita una regola di convalida.

  2. Nel gruppo Convalida campo della scheda Campi tabella fare clic su Convalida e quindi su Messaggio di convalida campo.

  3. Immettere un messaggio appropriato. Se ad esempio la regola di convalida è > 10, il messaggio potrebbe essere "Immettere un valore minore di 10".

Per alcuni esempi di regole e messaggi di convalida campo, vedere la sezione Informazioni di riferimento sulle regole di convalida.

Creare una regola di convalida per record

  1. Aprire la tabella per la quale eseguire la convalida dei record.

  2. Nel gruppo Convalida campo della scheda Campi tabella fare clic su Convalida e quindi su Regola di convalida.

  3. Utilizzare il Generatore di espressioni per creare la regola. Per ulteriori informazioni sull'utilizzo del Generatore di espressioni, vedere l'articolo Utilizzare il Generatore di espressioni.

Creare un messaggio da visualizzare quando i dati immessi nel record non sono validi

  1. Aprire la tabella per la quale creare un messaggio di input non valido. Per la tabella deve essere già stata definita una regola di convalida per record.

  2. Nel gruppo Convalida campo della scheda Campi tabella fare clic su Convalida e quindi su Messaggio di convalida.

  3. Immettere un messaggio appropriato. Ad esempio, se la regola di convalida è [DataInizio]<[DataFine], il messaggio potrebbe essere "DataInizio deve precedere DataFine".

Inizio pagina

Verificare una nuova regola di convalida su dati esistenti

Se si aggiunge una regola di convalida a una tabella esistente, potrebbe essere necessario verificare la regola per verificare la validità dei dati esistenti.

  1. Aprire la tabella che si desidera verificare in visualizzazione Struttura.

    Nel gruppo Strumenti della scheda Struttura tabella fare clic su Verifica regole di convalida.

  2. Fare clic su per chiudere il messaggio di avviso e avviare la verifica.

  3. Se viene richiesto se salvare la tabella, fare clic su .

  4. Durante la procedura è possibile che vengano visualizzati numerosi messaggi di avviso. Leggere le istruzioni contenute in ogni messaggio e quindi fare clic su o No per completare o interrompere la verifica.

Inizio pagina

Aggiungere una regola di convalida a un controllo in una maschera

È possibile usare la proprietà Valido se e la proprietà Messaggio errore di un controllo di maschera per convalidare i dati immessi in tale controllo e informare gli utenti che hanno immesso dati non validi.

Suggerimento:  Se una maschera è stata creata automaticamente da una tabella utilizzando uno dei comandi Maschera della barra multifunzione, le eventuali convalide dei campi della tabella sottostante vengono ereditate dai controlli corrispondenti nella maschera.

A un controllo è possibile aggiungere una regola di convalida diversa da quella per il campo di tabella a cui è associato il controllo stesso. Questo risulta utile se si desidera che la maschera sia più restrittiva della tabella. Viene infatti applicata prima la regola per la maschera e quindi quella per la tabella. Se la tabella è più restrittiva della maschera, la regola definita per il campo di tabella ha la precedenza. Se le regole si escludono a vicenda, non consentono l'immissione di dati.

Si supponga, ad esempio, di applicare la regola seguente a un campo di tipo Data in una tabella:

<#01.01.2010#

Viene quindi applicata la regola seguente al controllo di maschera associato al campo di tipo Data:

>=#01/01/2010#

Nel campo di tipo Data sarà ora necessario immettere valori precedenti all'anno 2010, mentre il controllo di maschera richiede l'immissione di date uguali o successive a tale anno, impedendo pertanto di immettere qualsiasi data.

Creare una regola di convalida per un controllo

  1. Fare clic con il pulsante destro del mouse sulla maschera che si desidera modificare e quindi scegliere Visualizzazione Layout.

  2. Fare clic con il pulsante destro del mouse sul controllo che si desidera modificare e quindi scegliere Proprietà per aprire la finestra delle proprietà per il controllo.

  3. Fare clic sulla scheda Tutte e quindi immettere la regola di convalida nella casella della proprietà Valido se.

    Suggerimento:  Fare clic sul pulsante Genera per avviare il Generatore di espressioni.

    Per altre informazioni sull'utilizzo del Generatore di espressioni, vedere l'articolo Usare il Generatore di espressioni.

  4. Immettere un messaggio nella finestra della proprietà Messaggio errore.

Inizio pagina

Informazioni di riferimento sulle regole di convalida

Le regole di convalida usano la sintassi delle espressioni di Access. Per altre informazioni sulle espressioni, vedere l'articolo Introduzione alle espressioni.

Esempi di regole e messaggi di convalida

Valido se

Messaggio errore

<>0

Immettere un valore diverso da zero.

>=0

Il valore deve essere minore o uguale a zero.

-oppure-

Immettere un numero positivo.

0 Or >100

Il valore deve essere uguale a 0 o maggiore di 100.

BETWEEN 0 AND 1

Immettere un valore con un simbolo di percentuale (da usare con un campo in cui i valori numerici vengono archiviati come percentuali).

<#01.01.2007#

Immettere una data anteriore al 2007.

>=#01.01.2007# AND <#01.01.2008#

La data deve essere compresa nell'anno 2007.

<Date()

La data di nascita non può essere una data futura.

StrComp(UCase([Cognome]), [Cognome],0) = 0

I dati contenuti in un campo Cognome devono avere l'iniziale maiuscola.

>=Int(Now())

Immettere la data corrente.

M Or F

Immettere M per persone di sesso maschile e F per persone di sesso femminile.

LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org"

Immettere un indirizzo di posta elettronica valido con dominio ".com", ".net" o ".org".

[DataRichiesta]<=[DataOrdine]+30

Immettere una data che non sia successiva di oltre 30 giorni rispetto alla data dell'ordine.

[DataFine]>=[DataInizio]

Immettere una data di fine corrispondente o successiva alla data di inizio.

Esempi di sintassi per operatori di regole di convalida comuni

Operatore

Funzione

Esempio

NOT

Verifica l'eventuale presenza di valori inversi. Utilizzare questo operatore prima di qualsiasi operatore di confronto, ad eccezione di IS NOT NULL.

NOT > 10 (equivalente a <=10).

IN

Verifica l'eventuale presenza di valori uguali a membri esistenti in un elenco. Il valore di confronto deve essere un elenco separato da virgole e racchiuso tra parentesi.

IN ("Tokio","Parigi","Mosca")

BETWEEN

Verifica l'eventuale presenza di un intervallo di valori. È necessario utilizzare due valori di confronto, uno minimo e uno massimo, e separarli tramite il separatore AND.

BETWEEN 100 AND 1000 (equivalente a >=100 AND <=1000)

LIKE

Trova le corrispondenze tra stringhe di ricerca in campi di tipo Testo e Memo.

LIKE "Geo*"

IS NOT NULL

Rende obbligatoria l'immissione di valori nel campo. Equivale a impostare la proprietà Obbligatorio per il campo su . Quando, tuttavia, si attiva la proprietà Obbligatorio e un utente non immette alcun valore, in Access viene visualizzato un messaggio di errore di difficile comprensione. In genere, il database è più semplice da gestire se si utilizza IS NOT NULL e si immette un messaggio descrittivo nella proprietà Messaggio errore.

IS NOT NULL

AND

Specifica che tutte le parti della regola di convalida devono essere vere.

>= #01.01.2007# AND <=#03.06.2008#

Nota: È anche possibile usare AND per combinare regole di convalida. Ad esempio: NOT "UK" AND LIKE "U*".

OR

Specifica che alcune ma non tutte le parti della regola di convalida devono essere vere.

gennaio OR febbraio

<

Minore di.

< =

Minore o uguale a.

>

Maggiore di.

> =

Maggiore o uguale a.

=

Uguale a.

<>

Diverso da.

Utilizzo di caratteri jolly nelle regole di convalida

È possibile utilizzare i caratteri jolly nelle regole di convalida. Tenere presente che in Access sono supportati due set di caratteri jolly, ovvero ANSI-89 e ANSI-92. Ognuno di questi standard utilizza un set diverso di caratteri jolly.

Per impostazione predefinita, tutti i file con estensione accdb e mdb usano lo standard ANSI-89.

È possibile modificare lo standard ANSI per un database ANSI-92 utilizzando la procedura seguente:

  1. Nella scheda File fare clic su Opzioni.

  2. Nella finestra di dialogo Opzioni di Access fare clic su Progettazione oggetti.

  3. Nella sezione Struttura query selezionare Database corrente in Sintassi compatibile SQL Server (ANSI-92).

Per ulteriori informazioni sull'utilizzo di caratteri jolly e sugli standard ANSI per SQL, vedere l'articolo Guida di riferimento ai caratteri jolly di Access.

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.