Newsgroup: it.comp.appl.access
Titolo: Funzioni logiche in VBA, non partono con una casella combinata

E' da qualche ora che sto tentando inutilmente di gestire una funzione
logica apparentemente semplice su una casella combinata... ma la
funzione non ne vuole sapere di funzionare correttamente...
ho una casella combinata che funziona come campo di ricerca di record
nela maschera...
ed ho un altra casella combinata che funge da selettore di campo
mail/utente
la funzione logica e' piuttosto banale...
poiche quando apro la maschera i due campi risultano "vuoti" il tasto
che confeziona la mail del report deve verificare semplicmente due
condizioni:
1) se il campo mail contiene una mail
2) se il campo del codice relativo al report contiene un codice...
in caso negativo mi deve segnalare che la casella non deve essere
correttamente compilata...
e fino a qui nulla di strano...
io non posso associare alla casella un valore preipostastato (poiche la
casella deve avere solo campi riguardanti l'elenco in esse contenute in
sostanza la voce "solo in elenco" deve rimanere su Sì)
ora... il problema e' che quel campo ha un valore nullo...
ma se io uso come test una delle seguenti stringhe la funzione procede
come se la condizione non fosse soddisfatta
If Me!CasellaCombinata42 = Null Then
If Me!CasellaCombinata42 = 0 Then
If Me!CasellaCombinata42 is Null Then
in questo caso dovrebbe mostrarmi una finestra con il messaggio di
errore e uscire dal Sub con la seguente funzione:
MsgBox "Specificare un indirizzo E-mail", vbExclamation
        Exit Sub
altrimenti dovrebbe proseguire con la funzione che prepara la mail...
il campo in questione e' assoliutamente vuoto e il valore e'
effettivamente Null
eppure e' come se non lo fosse...
nessuno sa dirmi per quale ragione?

 nessuno sa dirmi per quale ragione?
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

Mi risulta che per valutare se un campo è null tu debba utilizzare la
funzione IsNull() e che un utilizzo diverso dia sempre come risultato
false (che poi spiegherebbe perchè non ti funziona). Dai un'occhiata
alla guida in linea di VBA (prova con null o isnull e vedi che ti dice)
Ciao 
Fabio

E' da qualche ora che sto tentando inutilmente di gestire una funzione
logica apparentemente semplice su una casella combinata... ma la
funzione non ne vuole sapere di funzionare correttamente...
ho una casella combinata che funziona come campo di ricerca di record
nela maschera...
ed ho un altra casella combinata che funge da selettore di campo
mail/utente
la funzione logica e' piuttosto banale...
poiche quando apro la maschera i due campi risultano "vuoti" il tasto
che confeziona la mail del report deve verificare semplicmente due
condizioni:
1) se il campo mail contiene una mail
2) se il campo del codice relativo al report contiene un codice...
in caso negativo mi deve segnalare che la casella non deve essere
correttamente compilata...
e fino a qui nulla di strano...
io non posso associare alla casella un valore preipostastato (poiche la
casella deve avere solo campi riguardanti l'elenco in esse contenute in
sostanza la voce "solo in elenco" deve rimanere su Sì)
ora... il problema e' che quel campo ha un valore nullo...
ma se io uso come test una delle seguenti stringhe la funzione procede
come se la condizione non fosse soddisfatta
If Me!CasellaCombinata42 = Null Then
If Me!CasellaCombinata42 = 0 Then
If Me!CasellaCombinata42 is Null Then
in questo caso dovrebbe mostrarmi una finestra con il messaggio di


If IsNull(Me!CasellaCombinata42) Then
      MsgBox "Specificare un Codice Valido", vbExclamation
      Exit Sub
    End If
ho provato questa condizione ma la condizione risulta comunque falsa...
e non ho la minima idea del perchè!

Scusa ma a me funziona così... Ho anche provato a fare una mascherina
con una casella combinata ed un pulsante... se lo clicco e la casella
è vuota, mi dà il messaggio richiesto. L'evento che lancia questo
controllo qual è? Non è che magari esegui prima degli altri controlli
che ti fanno saltare questo?
Spiacente di non poterti essere più utile.
Fabio