ok....allora:
ho un recordset nel quale sono presenti tutti gli appuntamenti di una giornata per un certo numero di box disponibili.
Da questo recordset mostro o meno gli spazi liberi tra gli appuntamenti per poterne prenotare. Fin qui tutto bene. in base al tempo del programma e al box dove deve venire svolto seleziono lo spazio libero.

Il problema che mi si pone è che alcuni programmi si svolgono in un box solo (nessuno problema...) altri programmi invece sono composti da una serie di sottoprogrammi che si svoglono in box differenti tra loro.
Ora mi si pone il problema che le combinazioni possibili diventano tante e che non so proprio bene come poter organizzare il tutto.
Quindi ho pensato (e ho quasi finito questa elucubrazione) per ogni programma di moltiplicare i filtraggi che ho messo nel codice descritto. Dal momento che però risulta come se alcuni programmi siano "annidiati" uno dentro l'altro, volevo creare una funzione che potesse essere richiamata e per ogni sottoprogramma ma non con un semplice while.
Ora il filtro per il primo box (non il recordset ma nella pagina faccio vedere solo quello che va bene) poi per tutti i programmi dopo etc etc...solo che non volevo creare una pagina troppo pesante,ma imparando anche un po visto che le funzioni non lo so usare.

LA FUNZIONE
La funzione dovrebbe per ogni record di un certo box e giorno, assegnare la fascia orario dell'inizio del tempo libero (o della fine del programma prima) e la fascia oraria della fine del tempo libero (o dell'inizio del programma dopo). Quindi poi verificare se la durata del programma sta nello spazio libero delle fascie orarie.

E' molto complessa come cosa, spece per uno che non si sa spiegare come me. Al massimo in pvt se vuoi ti faccio vedere la prova on line di quello che dico!!!!!