Ciao!

Sono un neofita nella programmazione con Access. Per il mio lavoro ho la necessitÓ di creare un programmino che mi semplifichi il lavoro quotidiano e farmi risparmiare oltre due ore di tempo tutti i giorni! SarÓ creare il programmino che sarÓ complesso e complicato, credo, per cui chiedo il vostro aiuto, qualunque esso sia, in questa avventura da cui vorrei poter uscire vittorioso anche grazie a voi. Si tratterÓ di un programmino che aiuterÓ molti lavoratori ad offrire un servizio migliore alla popolazione.

Ho giÓ ideato tutto quello che tale programma dovrÓ fare e vorrei delle dritte su come muovermi, su cosa studiare, passo-passo, per poter realizzare il prodotto finale e, perchŔ no, anche delle procedure per singoli tratti di programmazione che potr˛ riunire insieme. A giudicare dalla mole di operazioni che dovrÓ compiere il programmino, da incompetente quale sono, mi sembra quasi impossibile se non fosse per la certezza che Access sia un programma di grandissime potenzialitÓ.

Il mio problema Ŕ che non saprei proprio cosa cercare in rete e come procedere passo-passo per affrontare una questione alla volta delle molte funzioni da programmare. Mi sarebbe utile, per esempio, un elenco di operazioni di programmazione da svolgere per cui cercare le singole procedure.

Nello specifico le funzioni che il programmino dovrÓ svolgere sono le seguenti.

1. DovrÓ calcolare un promemoria di appuntamenti fino a 10 date/appuntamento/fascia oraria e di rispettare in tale programmazione delle condizioni variabili:

- gli appuntamenti dovranno essere solo in giorni feriali, da lunedý a venerdý;
- dovranno occupare fino a un massimo di 6.24 per il tipo R, fino a 16.24 per il tipo P e 2.24 per il RP;
- rispettare che nei mercoledý gli appuntamenti dovranno riguardare gli utenti della zona 1.4, nei venerdý quelli della zona 2.4, nei giovedý 3.4, il martedý quelli della zona 4.4, e che nei lunedý ogni 15 gg. si alternino gli appuntamenti nelle zone 1.4 e 2.4;
- i contratti potranno essere per singolo appuntamento o ripetersi per cicli fino a 8, ogni 3, 7, 10, 15, 21, 30 giorni;
- gli appuntamenti del tipo R dovranno avvenire in fascia oraria 1, i tipo P in fascia 2, gli RP in fascia 1 o 2 a seconda che siano r.RP o p.RP;
- la prenotazione dovrÓ attribuire il primo appuntamento agli utenti rispettando 3 tipi di prioritÓ: entro 10 giorni, entro 60 giorni o entro 180 giorni.

2. SarÓ in grado di trovare un elenco di utenti, nella tabella Utenti e/o in quella dei Contratti, a cui inviare fattura via fax o e-mail, con relativo cognome e nome dell'utente, cognome e nome del destinatario, numero di fax o indirizzo e-mail.

3. Mi consentirÓ di stampare un promemoria per l'utente in cui siano riportate delle informazioni standard per tutti e delle informazioni personalizzate, quali:

- cognome e nome dell'utente;
- data di inizio del contratto attuale;
- il promemoria per l'utente sulla data entro la quale far pervenire ulteriore prenotazione per nuovo ciclo di appuntamenti;
- la data entro cui firmare il relativo nuovo contratto;
- le indicazioni da rispettare per l'utente relativi alla tipologia di servizio richiesta;
- la specificazione dell'opzione richiesta per l'invio della fattura al fax o all'e-mail.

4. DovrÓ anche consentire di creare e stampare due piani di lavoro, che nomineremo con PA e PB, per gli appuntamenti in ogni data.

5. Tali piani di lavoro raggrupperanno in parti uguali gli utenti (da 0 a 6) programmati per utenti di tipo R, quelli (da 0 a 16) di tipo P e quelli (da 0-2 ) di tipo RP.

6. Uno dei due piani di lavoro dovrÓ contenere solo utenti che abitano al Piano Terra o che siano forniti di ascensore.

7. Entrambi i piani di lavoro potranno ospitare prioritariamente gli utenti di categoria Z suddividendoli in Z1 e Z2.

8. Nel caso il numero di appuntamenti sia inferiore a 12 per giorno, basterÓ produrre un solo piano di lavoro;

9. Mentre se gli appuntamenti sono da 12 a 18, i primi 12 dovranno occupare un solo piano di lavoro e i restanti 6 il secondo.

10. DovrÓ creare una tabella di rilevazione quotidiana in un calendario mensile del numero di appuntamenti e delle loro tipologie (R e P, P settimanali, P quindicinali, R ripetibili), del numero di prenotazioni ricevute e del numero di nuovi contratti sottoscritti.

Ma eccomi alla parte migliore.

Ho giÓ creato due tabelle (utenti e Contratti) e le relative maschere.

Nella tabella Utenti ho il database principale, con dati anagrafici, indirizzo (da raggruppare per zona da 1 a 4), numero utente, indirizzo e-mail, numero fax, piano e ascensore.

Nella tabella Contratti ho riportato i dati anagrafici e il numero utente, i campi numero fax e indirizzo e-mail, il numero e la data della prenotazione, l'indicazione che si tratti di 1 solo appuntamento o di un ciclo, il numero di appuntamenti fino a 8 per ciclo, i campi per le 10 date da programmare (8 + 2 di riserva da confermare) a distanza di 3, 7, 10, 15, 21, 30 giorni l'una dall'altra, un campo per scrivere l'elenco dei codici relativi al tipo di servizio richiesto, uno per le indicazioni per l'utente relative al tipo di servizio richiesto.

Non so come fare:

- aggiornare in automatico i campi con informazioni uguali nelle due tabelle imputando un una sola di esse attraverso la relativa maschera;
- compilare automaticamente il campo Indicazioni per l'utente all'inserimento nel campo Servizi richiesti di un elenco di codici corrispondenti ai vari servizi richiesti tra quelli disponibili e di cui ho creato tabella separata dei codici servizi e relative indicazioni;
- la terzultima data di appuntamento dovrÓ essere collegata ad un avviso di scadenza per cui sarÓ necessario che l'utente prenoti nuovo ciclo di appuntamenti;
- l'insieme di tali avvisi dovranno compilare una nuova tabella Avvisi di scadenza per gli utenti relativa ad ogni data ed essa potrÓ essere stampata.

Sono consapevole che il lavoro da svolgere Ŕ molto impegnativo (e per questo vorrei poterlo svolgere in prima persona) per˛ credo che, con il vostro aiuto esperto, potr˛ riuscire ad espletare tutti i compiti tranquillamente.

Chi pu˛ aiutarmi, anche se solo in parte?