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

Salve a tutti, ho un piccolo problema con la giusta struttura
dell'istruzione IF.
Io avrei questa necessità:
In una maschera ho 6 caselle di controllo,
----------------------------------
Premendo il pulsante stampa, dovrei controllare che almeno una è
selezionata.
----------------------------------
-Se almeno 1 è selezionata:
dovrei chiedere se si vuole salvare i dati inseriti e quindi aprire una
msgbox con i due pulsanti Ok e Annulla
- Su Ok
eseguire il salvataggio e poi la stampa
- Su Annulla
tornare alla maschera senza salvare.
-----------------------------------
-Se invece nessuna casella di controllo è selezionata:
msgbox con avviso che nessuna opzione è stata selezionata
quindi tornare alla maschera
----------------------------------
Quello che non riesco a capire e come strutturare le varie condizioni, oltre
a come fare a controllare tutte e 6 le caselle di controllo visto che sono
riuscito a controllarle 2 per volta avendo la seguente struttura:
If.........
If........
If........
End If
Che però non mi sembra una buona soluzione.
Spero di essere stato chiaro
grazie gianni


if ck1 or ck2 or ck3 or ck4 or ck5 or ck6 then
    almeno un ck vero
elso
   tutti i ck falsi
end if
oppure if ck1+ck2+ck3+ck4+ck5+ck6 = 0 then
    tutti i ck falsi
else
    almeno un ck vero
end if
--
a.cara 
Togli qualcosa dall'email


Perché non funziona???????
Private Sub Form_Unload(Cancel As Integer)
Dim a As Boolean
Dim b As Boolean
Dim c As Boolean
Dim d As Boolean
Dim e As Boolean
Dim f As Boolean
a = IsNull(Miotext1.Value)
b = IsNull(Miotext2.Value)
c = IsNull(Miotext3.Value)
d = IsNull(Miotext4.Value)
e = IsNull(Miotext5.Value)
f = IsNull(Miotext6.Value)
Me.Refresh
If a And b And c And d And e And f = False Then
    MsgBox "Vuoi salvare?", vbOKCancel
     If MsgBox("Vuoi salvare?", vbOKCancel) = vbOK Then
        DoCmd.Close acForm, "Menu", acSaveYes
    Else
        DoCmd.CancelEvent
        Miotext1.SetFocus
    End If
Else
    MsgBox "Nessun valore rilevato"
    DoCmd.CancelEvent
    Miotext1.SetFocus
End If
End Sub
Saluti
Gippe.

 > end if
Perché non funziona???????
 Private Sub Form_Unload(Cancel As Integer)
 Dim a As Boolean
 Dim b As Boolean
 Dim c As Boolean
 Dim d As Boolean
 Dim e As Boolean
 Dim f As Boolean
 a = IsNull(Miotext1.Value)
 b = IsNull(Miotext2.Value)
 c = IsNull(Miotext3.Value)
 d = IsNull(Miotext4.Value)
 e = IsNull(Miotext5.Value)
 f = IsNull(Miotext6.Value)
 Me.Refresh
 If a Or b Or c Or d Or e Or f = False Then


grazie gianni
Ciao  ;-)
--
Alberto
No alle guerre


perche e' un testo, scusami avevo interpretato che fossero check box
a = "" & miotext1 & miotext2......fino a 6
if a = "" then
   nessun valore
else
  almeno un valore
end if
come lo hai fatto tu
dovrebbe essere
if a and b and c and d and e and f then
   nessun valore
else
  almeno un valore
come hai scritto tu 
significa questo 
if a = true or b = true or c = true or d = true or e = true or f = false


Gippe wrote:
PS per favore non modificare l'oggetto, sopratutto se senza significato


 ha scritto nel messaggio
news:3F803636...@blunet.it...

Il problema non risiede in questo, perché il controllo è corretto. Ci sono
due problemi, uno dei quali l'ho individuato ma non so come risolverlo.
1) Quando il setfocus è sul controllo, la funzione IsNull non analizza il
dato.
2) Non ho capito perché la lettura del codice avanza pur forzando l'uscita
quando è verificato un If then. Cioè quando appare la maschera di scelta
(vbOkCancel) mi dice che l'evento è annullato.
Scusa per essere incappato in un errore di netiquette: ignoravo tale fallo
(relativa colpa perché in altri NG da me frequentati è pratica
consueta-it.arti.musica.classica). Non succederà più.
Saluti.
Gippe.

 consueta-it.arti.musica.classica). 
il mio era solo un "consiglio". Attenzione sempre all'oggetto. Qui vige la
"fustigazione" se si posta con oggetti non "tecnici" ;<)
Ovviamente l [OT] e' consentito



Consiglio prezioso e accettato!
Saluti.
Gippe.