2 - Evitare di inserire da maschera un campo vuoto in tabella

Stato
Chiusa ad ulteriori risposte.

ges

Excel/VBA Expert
Amministratore
21 Giugno 2015
29.532
2.465
Como
2011MAC 365WIN
1.009
ACCESS VBA
Impedire che si inserisca un campo vuoto nella tabella

Ho predisposto una maschera con una casella di testo (chiamata Me.txtNick) in cui posso inserire dei nomi nella tabella.

Va però affrontato un primo problema:

1) Se la casella di testo è vuota verrà inserita una riga vuota nella tabella

Voglio risolvere questo problema e vediamo come.

Per la soluzione basta una riga di codice che verifica se la casella di testo è vuota e se è così esca dalla Sub

Verrebbe da scrivere

If Me.txtNick = "" Then Exit Sub

Ma così facendo farei un grosso errore!

Perché Access non è come Excel che interpreta il segno =”” come vuoto, qui non siamo in una cella ma in un campo di un database e quindi con l’istruzione di codice riportata sopra sto dicendo a Access di inserire un campo vuoto in un nuovo record.

Non servirebbe nemmeno dirgli se è vuoto usando la funzione “IsEmpty”

If IsEmpty(Me.txtNick) Then Exit Sub

Sarebbe sempre la stessa cosa producendo il risultato di inserire un campo vuoto. Si potrebbe quindi pensare di usare la funzione IsNull

If IsNull(Me.txtNick) Then Exit Sub

che in teoria sarebbe valida, ma in pratica anche questa può fallire essendo interpretato il “Null”

come diverso da vuoto

e quindi??? C’è una modalità infallibile???

In realtà l’ho trovato usando un piccolo escamotage, che consiste nel contare le lettere nella casella di testo e cioè se sono uguali a 0 allora vuol dire che non c’è scritto nulla, quindi esci dalla Sub

Si dovrebbe pertanto scrivere così:

If IsNull(Me.txtNick) Then Exit Sub

E però se per errore schiaccio la barra spaziatrice della tastiera inserendo uno spazio??? In questo caso mi creerebbe sempre un campo vuoto.

Allora la soluzione definitiva è quella di aggiungere anche gli spazi nel conteggio così:


Visual Basic:
If Len(Me.txtNick & "") = 0 Then Exit Sub
 

Allegati

Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!