>questo è il codice:
>
>If Right(Me.TID_Isola.Value, 1) <> "P" Or Right(Me.TID_Isola.Value,
>1) <> "B" Then
>MsgBox ("Attenzione: ID Isola non valido! Inserisci alla fine
>del nome la lettera P o la lettera B!")
> TID_Isola.SetFocus
>
> GoTo 100
> End If
>
>Perchè anche se il campo finisce per P o per B, mi da sempre
>questo Msg_Box? é come se la condizione dell'if viene sempre
>ritenuta vera....
Infatti, utilizzando l'operatore Or basta che una delle condizioni sia vera per rendere vera l'intera espressione.
Utilizzando invece And la condizione risulterà vera se l'ultimo carattere sarà diverso da "P" E "B" (contemporaneamente).
Un altro modo per esprimere lo stesso concetto potrebbe essere questo:
If Not (Right(Me.TID_Isola.Value, 1) = "P" Or Right(Me.TID_Isola.Value, 1) = "B") Then
...
Se vuoi semplificare l'espressione, ricordati di applicare l'operatore Not ANCHE all'operatore logico Or (Not(Or) = And):
If Right(Me.TID_Isola.Value, 1) <> "P" And Right(Me.TID_Isola.Value, 1) <> "B" Then
...
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org