Newsgroup: it.comp.appl.access
Titolo: Nullo o vuoto, che noia!

Ho bisogno di un test facile per discriminare il caso in cui
in una casella di testo ci sia qc di significativo oppure
no, e ho scoperto che nei casi "non significativi" ci
potrebbe stare Null oppure Vuoto, che sara' certo una
distinzione significativa, ma ai fini pratici mi pare una
gran seccatura, infatti avevo provato a usare il test
if Len(casellatxt)>0 ma ho scoperto che, se casellatxt=Null
anche la lunghezza e' Null, e se e' Vuoto, trattandosi di
una data, la lunghezza e' 8 dato che viene assunto come
00:00:00!! che casino!
Sono condannato a scrivere centinaia di volte:
if IsNull(casellatxt) or if IsEmpty(casellatxt)    ??
il barbi

 ha scritto nel messaggio
news:OL7va.140430$K35.3...@news2.tin.it...

Ciao
Puoi concatenare una stringa vuota es.
if Len("" & casellatxt)>0
Comunque una casella di testo contenente la data quando è vuota assume null
e non 00:00:00
Ciao Giorgio.

 ha scritto nel messaggio
news:OL7va.140430$K35.3...@news2.tin.it...

If Me.casellatxt > 0 Then MsgBox "La casella ha un valore"
Ciao, Carlo

 wrote in news:OL7va.140430$K35.3260850
@
news2.tin.it
:

usa questo:
(occhio al wrapping...)
Function IsNothing(varToTest As Variant) As Integer
'Autore: J. L. Viescas
   IsNothing = True
   Select Case VarType(varToTest)
        Case vbEmpty
            Exit Function
        Case vbNull
            Exit Function
        Case vbBoolean
            If varToTest Then IsNothing = False
        Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
            If varToTest <> 0 Then IsNothing = False
        Case vbDate
            IsNothing = False
        Case vbString
            If (Len(varToTest) <> 0 And varToTest <> " ") Then IsNothing 
= False
   End Select
End Function
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------

 wrote in message
OL7va.140430$K35.3...@news2.tin.it...

If Nz(casellatxt, "") = "" Then
    ' la casella di testo è vuota o Null
Else
    ' la casella di testo contiene un valore significativo
End If
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Scusa Roberto ma leggendo la guida in linea ho visto che
You can use the Nz function to return zero, a zero-length string (" "), or
another specified value when a Variant is Null.
Che vuol dire che nel tuo esempio casellatxt è una variabile variant?
Ho non ho capito un piffero?
Giuseppe

 wrote in message
1Fbva.142073$K35.3...@news2.tin.it...

L'help, tradotto in italiano dice:
===================
È possibile utilizzare la funzione Nz per restituire zero, una stringa a
lunghezza zero ("") o un altro valore specificato quando un valore Variante
è Null. È possibile, ad esempio, utilizzare questa funzione per convertire
un valore Null in un altro valore ed evitare che si propaghi in
un'espressione.
Sintassi
Nz(variante[,valoresenull])
<omissis>
Se il valore dell'argomento variante è Null, la funzione Nz restituisce il
numero zero o una stringa a lunghezza zero, a seconda che il contesto che
indica il valore sia numerico o sia una stringa.
<omissis>
==================
Inoltre l'help dice che:
===========
<omissis>
Il tipo di dati Variante consente di memorizzare dati di tipo numerico, di
tipo stringa, di tipo data/ora, di tipo Null o di tipo Empty.
<omissis>
===========
Quindi nel mio esempio il dato contenuto nella casella di testo casellatxt
può essere "di tipo numerico, di tipo stringa, di tipo data/ora, di tipo
Null o di tipo Empty" e se è Null comunque restituisce una stringa vuota
(""), come restituisce naturalmente una stringa vuota se casellatxt è Empty,
ovvero è già "".



Quando e' associata a un campo di tabella assume valore
00:00:00 e ha lunghezza 8, invece quando non e' associata
vale Vuoto e ha lunghezza 0
il barbi


funziona con Vuoto ma non con Null, con Null qualunque test
fallisce, sia che metti >0 o =0 o <0
io cercavo un test che andasse bene sia col Null che col
Vuoto
il barbi

 ha scritto nel messaggio
news:XMuva.78184$3M4.1...@news1.tin.it...

Ciao
Mi riferivo appunto ad un controllo che ha come origine un campo data.
Forse hai inserito il valore predefinito "00:00:00"  nel controllo della
maschera.
Ciao Giorgio.


no, pero' ho visto che nella tabella alcuni campi data hanno
Formato = data in cifre e invece altri hanno Formato non
definito, adesso faccio qualche test
il barbi


niente, la differenza non e' significativa, cedo e faccio
IsNull+IsEmpty
il barbi

 ha scritto nel messaggio
news:6vawa.88976$3M4.2...@news1.tin.it...

A me piace usare la mia funzione
public function Vuoto(x as variant) as boolean
if isnull(x) or trim(x) = "" then
  vuoto = true
else
  vuoto = false
end if
end function
da richiamare poi con
if vuoto(...) then
Antonio

 
navigando, avevo trovato questa:
Function IsNothing(varToTest As Variant) As Integer
'Autore: J. L. Viescas
   IsNothing = True
   Select Case VarType(varToTest)
        Case vbEmpty
            Exit Function
        Case vbNull
            Exit Function
        Case vbBoolean
            If varToTest Then IsNothing = False
        Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
            If varToTest <> 0 Then IsNothing = False
        Case vbDate
            IsNothing = False
        Case vbString
            If (Len(Trim(varToTest)) <> 0 And varToTest <> " ") Then 
IsNothing = False
   End Select
End Function
gestisce qualsiasi caso, con qualunque tipo di oggetto (o almeno dovrebbe 
:-))
