Newsgroup: it.comp.appl.access
Titolo: struttura if

come si fa in una struttura if....Then a dire:
se il controllo č vuoto dai questo messaggio
ho provato cosě
if txt1= null then
MsgBox "Non serve la stampa"
end if
ovviamente non funziona
e sempre sulla struttura if per usare l'operatore (or)
questa sintassi č quella che conosco
if txt1=5 or txt1=6 or txt1=9 then
ecc... ecc...
oppure si puň raggruppare tipo:  if txt1=(1 or 5 or 6 or 9) then
ecc.. ecc..
--
ciao


non credo che funzioni: io utilizzo sempre gli OR separati
If (Me.Testo = 1) Or (Me.Testo = 3) Or (Me.Testo = 5) Then
    MsgBox "Testo = 1 o 3 o 5"
Else
    MsgBox "Testo diverso da 1 o 3 o 5"
End If
perchč riesco a controllarli meglio
ciao
Maurizio

 Maurizio
In questo caso credo sia meglio usare SelectCase (vado a memoria, vedere la
guida).
Bye, Luigi.

 ecc.. ecc..
    Se "raggruppi", quello che ottieni e' il confronto fra il valore della
Casella di testo txt1 e il *risultato* dell'operazione logica:
            1 Or 5 Or 6 Or 9
cioe' 15. Sarebbe come se tu avessi scritto:
        If (Me.txt1.Value = 15) Then
che non e' quello che vuoi.
    Giustamente Gigi ha ricordato l'istruzione Visual Basic "Select Case"
che, nel tuo caso, potresti implementare cosi':
        Dim sValore As String
        Dim dValore As Double
        sValore = "" & Me.txt1.Value
        If (Len(sValore) = 0) Then
            MsgBox "Testo del messaggio se valore nullo."
        Else
            If (IsNumeric(sValore)) Then
                dValore = CDbl(sValore)
                Select Case dValore
                Case 1, 5, 6, 9
                    ' <...>
                Case Else
                    ' <...>
                End Select
            Else
                MsgBox "Testo del messaggio se valore non numerico."
            End If
        End If
N.B.: ho usato una variabile di tipo Double perche' non conosco il tipo del
dato che devi trattare.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 
oooohhhhh?! vedo che fare "o" e bastoncini con carta e penna
a qualcosa pur ti serve.
I decimali e che roba sono???
cmq hai "definitivamente" ragione.
--
a.cara


Ciao, scusa forse la domanda banale ma mi incuriosisce il perche di
"" & me.txt1.value.
Come mai gli hai concatenato una stringa vuota?
Avra mica a che fare con il valore di txt1 che crea casini con len a seconda
di cosa contiene?
Grazie
DD


Direbbe qualcuno "e' chiaro se sa".
I casini di cui parli sono relativi al "valore" null e non avvengono
solo con la len. Fatto sta che esiste la potentissima funzione Nz
proprio per tenere sotto controllo la cosa
Nel modo scritto dal borrelli il risultato di "" & Null e' = ""
mentre se e' un qualsiasi altro valore e' il valore stesso onde
per cui e' "decisamente" corretta
Personalmente uso la versione con nz
  if nz(me.txt.value,"") = "" then
che piu' o meno e' la stessa cosa
--
a.cara

 che piu' o meno e' la stessa cosa
    Diciamo che la:
        Function Nz(Value, [ValueIfNull])
            Membro di Access.Application
produce esattamente lo stesso risultato. Pero' ad un "costo" piu' elevato,
inteso come tempo di elaborazione. La cosa puo' diventare rilevante nel caso
l'istruzione si trovi in un ciclo che la esegua migliaia di volte.
    Di non poco rilievo e' poi il fatto che fa parte della library di
Access. Questo rende il codice non immediatamente riutilizzabile in progetti
Excel, Word, Visual Basic, ...


 cmq hai "definitivamente" ragione.
    E' probabile :-) ma non capisco a cosa tu ti riferisca. Puoi gentilmente
essere piu' esplicito? Ho come la sensazione che mi manchi un passaggio o
addirittura un post di collegamento. Negli ultimi giorni il mio newsserver
ha fatto i capricci e qualche post me lo devo essere proprio perso. Grazie.


cmq hai "definitivamente" ragione.
In effetti sei stato un tantino criptico ;-)

 ha fatto i capricci e qualche post me lo devo essere proprio perso. Grazie.
credo non ti manchi nulla. E' che ho inserito qui un riferimento al post
che riguardava la struttura delle date. 
--
a.cara