Newsgroup: it.comp.appl.access
Titolo: Nidificare gli If

Buonasera a tutto il NG,
ho una maschera basata sull'utilissima scaricata da Sitocomune, che permette
di selezionare la stampante visualizzandone le disponibili.
In questa maschera vi sono tre caselle di controllo, rispettivamente
chiamate Rpt1, Rpt2 e Rpt3, una casella di testo non associata chiamata
NumCopie ed un pulsante chiamato Stampa.
Su click del pulsante Stampa divrebbe andare a guardare gli If in base alla
casella di controllo spuntata (o alle caselle in caso di scelta multipla), e
stampare di conseguenza gli omonimi report;
il problema che mi si è presentato è proprio nella nidificazione degli If,
ovvero, ho inserito il codice ma in pratica Vb si ferma alla prima
condizione che risponde a vero e mi lancia l'output senza analizzare il
resto del codice, per cui se io ho selezionato due o tutte e tre le caselle
di controllo il codice si ferma alla prima condizione vera che trova ed in
pratica mi stampa solo la prima casella che trova spuntata.Per quanto
riguarda invece la casella non associata NumCopie, vorrei che il report
richiamato dalla casella di controllo mi vada a controllare il valore
inserito nella casella di testo NumCopie e di conseguenza mi stampi una o
due copie di quel determinato report.
Scusate se mi sono dilungato e un saluto a tutti.
Lucio

 resto del codice, per cui se io ho selezionato due o tutte e tre le
caselle
cut
Scusa ma se non posti il codice come si fa a capire dov'e' l'errore di
logica?
Sib


Il codice l'ho impostato cosě;
If me.Rpt1 then
docmd.openreport "Rpt1",acnormal,""
    if me.Rpt1 and me.Rpt2 then
        docmd.openreport "Rpt1,acnormal,""
            docmd.openreport "Rpt2",acnormal,""
e via dicendo, per quanto riguarda invece la casella che gestisce il numero
di copie e che vorrei impostare su apertura del report non ho idea di come
farlo.
Lucio

             docmd.openreport "Rpt2",acnormal,""
MA non ho capito perchč non fai cosě:
if me.rpt1 then docmdopenreport "Rpt1",acnormal,""
if me.rpt2 then docmdopenreport "Rpt2",acnormal,""
...
if me.rptN then docmdopenreport "RptN",acnormal,""
Se č spuntata lo fa altrimenti no.
Che te frega di fare degli and?!!?
Antonio

 ha scritto nel messaggio
news:LUIA9.28382$Zn2.7...@twister1.libero.it...

Ho fatto anche cosě ma il codice si ferma alla prima condizione true e mi
ignora le altre se sono spuntate.

 ignora le altre se sono spuntate.
Non ci credo...
Hai provato a fare un passo passo mettendo un punto di blocco sulla prima
istruzione?
Antonio

 ha scritto nel messaggio
news:OpMA9.29047$Zn2.8...@twister1.libero.it...

L'ho rifatto in pratica se la prima casella č spuntata va avanti e mi valuta
anche le altre, altrimenti non esegue nessun codice, tra l'altro se la prima
č spuntata e la seconda no mi viene fuori una finestra di errore che mi dice
che sto facendo un uso improprio del null.
Non so cosa fare...
Lucio

 che sto facendo un uso improprio del null.
prova a usare la funzione nz.
Sib


A questo punto non so piů che fare se riuscite a darmi un'esempio pratico di
come dovrebbe essere impostato il codice per non incorrere nell'errore che
mi ha presenatto fino ad adesso vi sono grato.
Lucio

 mi ha presenatto fino ad adesso vi sono grato.
Te l'ho già scritto l'esempio pratico!!!
Prova un po' a testare il contenuto delle caselle di spunta!!!
Antonio