Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Come sapere se una casella di testo contiene NULL

Ciao a tutti,
come da oggetto.
Uso Win2000, VB6, SP5 e DAO.
Ho un form di inserimento dati in un DB Access tramite caselle di testo (e
altro).
Il problema è che se cancello il contenuto della casella di testo con CANC
il contenuto risulta NULL ed ho un errore.
Ho provato F1 e Google per scoprire che non riesco a trovare una
soluzione...
Ho scoperto che:
1) il tasto CANC non è intercettabile, quindi soluzione sul Keypress da
scartare
2) Solo le variabili variant possono assumere valore NULL quindi non serve
fare IsNull(TEXT1)
3) Ho provato ad intercettare l'errore, ma è il 524, ed è lo stesso errore
che ricevo quando provo ad inserire un valore già esistente nel DB (e magari
chissà per quali altri errori...)
Ultima soluzione...consentire al DB l'inserimento di un valore Null
(lapalissiano eh eh) ma può dare problemi? e se si quali?
Grazie a tutti per le eventuali risposte.
Ciao
Andy

 (lapalissiano eh eh) ma puň dare problemi? e se si quali?


funzione IsNull()...
prova con F1...
-> GbC

 prova con F1...
forse isnull(f1) ...


Ciao
grazie per la risposta...
purtroppo avevo giŕ provato ...ma per VB č comunque la stessa cosa...se ne
accorge anche se sostituisco il contenuto direttamente con ""...
comunque grazie lo stesso....
per Java...non ho capito se la tua era una polemica...
leggo quasi sempre il NG e mi rendo conto che spesso a determinate questioni
si possa avere risposte da altre strade...
ma se hai letto bene il mio msg F1 sul mio computer non č Null visto che lo
premo sempre... solo che la funzione IsNull non si applica a variabili di
tipo testo (oltre a F1 ho cercato anche su google...ed ho trovato un bel
dibattito in cui Zanna spiegava la differenza tra empty e null)....
magari ho sbagliato nel capire la documentazione ma sicuramente ho cercato
prima di postare...
Grazie
Ciao
Andy
-- 
Posted from  [62.205.149.205] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

:))
-> GbC
http://www.chiappori.net
http://www.gbcweb.com

 Andy
non lo era, o almeno, non diretta a te in particolare. e' ormai una
constatazione. guarda il tema ruotare immagine fra ieri e oggi. non si fa in
tempo a rispondere, che qualcuno posta di nuovo la domanda. consentirai che
qualche volta si possa rispondere con altrettanto automatismo .
nel caso specifico era piu' una boutade a gbc che qcosa a te, di cui non
avevo proprio letto il primo post. mi scuso se (=visto che) te ne sei
risentito.
cmq se vai a cercare con google -- non solo iclvb, ma anche un po' dei ng
americani -- vedrai che sul problema del null/empty e famiglia, specie se
collegato a campi data, ci sono alcune decine o prob centinaia di post.
dubito fortemente -- mi consentirai -- che tu li abbia visti tutti, non
sarebbe umano. faccio fatica io a cercarli offline nell'mdb in cui li ho
messi man mano... e dopo 4.5 anni di vb e ng, temo non ho trovato/avuto una
soluzione univoca, sicura e stabile.
personalmente io setto allowzerolength =y e required = n in _tutti_ i campi
dei db (access) (in tutti quelli in cui lo si puo' fare). in linea di
massima, preferisco che qualcuno mi lasci indietro un campo a che gli crolli
il programma.
da qualche parte avevo inoltre letto qualcosa sul fatto di stare attenti
agli indici collegati a quei campi.
svolte queste simpatiche operazioni, a runtime provo a usare validate e
lostfocus.
cio' non toglie che p.e. uno possa mettere 7/4/2001 pensando al 4 luglio,
sua festa nazionale. e con tutti i miei controlli mi attacco.
spazio alla fantasia, dunque. se qualcuno ha trovato una soluzione
definitiva si faccia pure avanti.
intanto, qui sotto non scopri se e' null, ma se non c'e' niente di utile
si':
Private Sub txtData_LostFocus()
    If IsNull(txtData) Then MsgBox "ISNULL"
    If Len(txtData) = 0 Then MsgBox "EMPTY"
    If Not IsDate(txtData) then ....
End Sub
ciao, j.null

Non dichiarare la variabile come stringa...
Private Sub Command1_Click()
    Dim A
    A = ""
    Debug.Print IsNull(A) & " > A='" & A & "'"
    A = "pippo"
    Debug.Print IsNull(A) & " > A='" & A & "'"
    A = Null
    Debug.Print IsNull(A) & " > A='" & A & "'"
End Sub
Riguardo ad IsNull(F1) Java non lo fa con polemica...
È che ragiona veramente come un cane...
-> GbC
http://www.chiappori.net
http://www.gbcweb.com
PS: comunque....
IsNull(F1) = False, e allora...
<FIND>IsNull()</FIND>
<COPY></COPY>
<PASTE>
Restituisce un valore Boolean che indica se un'espressione non contiene
dati validi (Null).
Sintassi
IsNull(espressione)
L'argomento obbligatorio espressione è un valore di tipo 'Variant' che
contiene un'espressione numerica o un'espressione stringa.
</PASTE>
Dalla guida, e senza troppi dibattiti esistenziali, si arguisce che se
usi una variabile diversa da 'variant' (quindi dichiari esplicitamente
il tipo) non funziona (il risultato è sempre false)... Quindi o non
dichiari la tua variabile come stringa o trovi un altro escamotage... E
non è un bug, ma una feature... :)) La disquisizione di Zanna verteva
appunto nella spiegazione delle differenze che portano un linguaggio di
programmazione a comportarsi come hai appena visto...
Prova a non espicitare il tipo di variabiler, se puoi...
Altrimenti non so come potresti fare...
Ciao bello...
E non te la prendere con Java...
Qui lo sappiamo tutti che fa una vita da cani...

 È che ragiona veramente come un cane...
y
con gli occhi puri
e la bocca immonda

Beh...innanzitutto grazie per le risposte tecniche...
comunque penso che la soluzione più semplice sia quella che avevo pensato
(cioè come fa Java...Consenti lunghezza zero=SI e Richiesto=no), visto che
non ci sono indici su quei campi...
per il resto, vi dò ragione sul discorso NG in generale...
tanto più che è la prima volta che scrivo e che prima di postare ci ho anche
pensato su parecchio (proprio per evitare di porre una domanda non tanto
stupida, perché non tutte lo sono, ma ridondante) e fortunatamente mi
confermate che una vera risposta non c'era...quindi sono salvo eh eh
Tra l'altro nessuno vi obbliga a rispondere né a me né ad altri no? Quindi
sempre e comunque la massima riconoscenza :-))
In ogni caso non me la sono presa (era una battuta comunque carina), ma mi
sarebbe dispiaciuto non aver rispettato le regole, avendo fatto tutto il
possibile per provarci.
Ciao e grazie di nuovo
Andy
PS Java con la massima umiltà ti dico che io avevo cercato solo su ICLVB
(come faccio sempre...c'è quasi sempre una risposta)... :-))))

 (come faccio sempre...c'è quasi sempre una risposta)... :-))))
non c'e' bisogno d'unilta'. non con me, almeno, che non ne so praticamente
nulla. infatti, nb, la regola del cercare se e' gia' stata data risposta
vale anche per me, o per quelli bravi del ng. e' che sono pochi a farlo.
chiunque si trova un problema pensa che sia la prima volta che si presenta e
che tutti non desiderino altro.
abbe', buon lavoro e proseguimento di ng.
ciao, j

 Andy
dante ?
io constatavo lo sguardo e l'alito di j quando mi vorrebbe sleccazzare in
faccia dopo una bella oretta al parco, fra le cose che piu' la
interessano...


ops...pardon :-)
comunque capisco quello che intendi...
dillo alla mia "cucciola" (la più giovane dei tre...)
Di nuovo ciao
Andy

 ha scritto nel messaggio
news:9ofb49$clmmg$1...@ID-51318.news.dfncis.de...

LOL
ciao
ugo

 ha scritto nel messaggio
news:9ofi8d$cim$1...@newsreader.mailgate.org...

hai provato a vedere qua?
http://151.38.43.249/gbc_img/meeting/who.htm


java ha scritto:

IsEmpty(brain)

 (lapalissiano eh eh) ma può dare problemi? e se si quali?
Io te lo sconsiglio.
Saluti

hal, un po' troppo avventatamente ha scritto:

Sul momento non mi sono reso conto che la mia chiosa puo'
essere interpretata come rivolgersi in modo offensivo nei 
confronti di Andy.
Rivolgo ad Andy le mie piu' sentite scuse per la "gaffe" in cui
sono incappato.
Non era e non e' mio pensiero mal considerare Andy, intendevo
semplicemente fare un gioco di parole impersonale.
Ciao, hal