Buona sera.
L'idea è questa. L'utente utilizza la maschera:
- CLIENTI (che è associata alla tabella CLIENTI) per inserire i seguenti dati dei vari clienti:
NOME, COGNOME, INDIRIZZO, CAP, COMUNE, PROVINCIA, TELEFONO, MAIL, CODICE FISCALE, ID CLIENTE (che esce in automatico essendo il campo chiave con numerazione automatica)
Poi utilizza la maschera:
- EVENTI (che è associata alla tabella EVENTI) per inserire i seguenti dati degli eventi realizzati:
TITOLO EVENTO, DATA EVENTO, ORARIO, IMMAGINE, ID EVENTO (che esce in automatico essendo il campo chiave con numerazione automatica)
Una volta inseriti questi dati associo ad ogni cliente l'evento a cui ha assistito attraverso la maschera EVENTO - CLIENTE (che è associata alla relativa tabella) con i seguenti dati:
ID EVENTO, ID CLIENTE, NUMERO DI PARTECIPANTI, COMPONENTI DELLO STESSO NUCLEO FAMILIARE (tipo di dati SI/NO), FATTURATO (tipo di dati SI/NO), NUMERO FATTURA.
In pratica con questa maschera dichiaro se il cliente MARCO ha partecipato all'evento LA PITTRICE DELLA REGINA, con quanti partecipanti e se i partecipanti fanno parte dello stesso nucleo familiare (questo perchè il prezzo per la partecipazione all'evento cambia in relazione a se i partecipanti fanno parte dello stesso nucleo familiare o meno). Il campo FATTURATO mi serve per capire se ho già fatturato al cliente questo evento e il campo NUMERO FATTURA mi serve per inserire al suo interno il relativo numero della fattura realizzata.
La maschera CONTATORE FATTURE contiene solamente il campo ID e CONTATORE FATTURE con un unico record al cui interno inserisco il numero attuale a cui sono arrivato con la fatturazione e rappresenta anche il numero dal quale devo proseguire con le ulteriori fatture.
L'obbiettivo è quello di creare velocemente le fatture per tutti i clienti che hanno partecipato a un dato evento dopo che questo è stato realizzato (tenendo conto che a volte ad un evento di una serata partecipano 50 cliente dovrei creare a mano 50 fatture).
Così che l'utilizzatore del programma dopo aver inserito i dati precedentemente descritti va sulla maschera GENERATORE DI FATTURE dove c'è un solo campo la cui origine risale al TITOLO EVENTO della tabella EVENTI. Una volta selezionato l'evento succedono due cose:
- l'unica query esistente (QUERY1) che contiene tutti i dati necessari per generare la fattura (NOME, COGNOME, INDIRIZZO, CAP, COMUNE, PROVINCIA, CODICE FISCALE, ID EVENTO, TITOLO EVENTO, IMMAGINE, NUMERO DI PARTECIPANTI, COMPONENTI DELLO STESSO NUCLEO FAMILIARE, FATTURATO, CONTATORE FATTURE) filtra i risultati in base all'ID EVENTO selezionato nella maschera GENERATURE DI FATTURE attraverso il criterio inserito sotto il campo ID EVENTO --> [Maschere]![GENERATORE DI FATTURE]![CasellaCombinata5];
- fa partire la macro.
La MACRO esegui questi comandi:
- Apre la maschera CONTATORE FATTURE ed incrementa di 1 il valore contenuto nel campo.
- Apre la maschera CONTATORE REPORT (che fa riferimento alla relativa tabella) dove ho inserito questa formula sotto il campo CONTATORE REPORT --> =DCount("[Query1]![ID CLIENTE]";"Query1") --> in pratica mi restituisce il numero di record filtrati dalla QUERY1
- l'altro campo della maschera/tabella CONTATORE REPORT è il campo REPORT CORRENTE che parte sempre da 1 e dovrebbe servirmi per il ciclo FOR da far eseguire alla macro (ma che non sono capace di realizzare).
- parte una serie di comandi sotto la condizione IF [Maschere]![CONTATORE REPORT]![REPORT CORRENTE]<[Maschere]![CONTATORE REPORT]![CONTATORE REPORT]:
- apre il report FATTURA che contiene il layout con tutti i dati necessari per la fattura
- esporta con formattazione il report in pdf con nome del pdf creato pari a: ="C:\Users\cora\Desktop\FATTURE\" & [Maschere]![CONTATORE FATTURE]![CONTATORE FATTURE] & "-" & Year(Now()) & ".PDF" --> in pratica crea un pdf con nome del file pari al numero della fattura/anno in corso.
- apre la maschera CONTATORE REPORT e aumenta di 1 il valore del campo con il comando [Maschere]![CONTATORE REPORT]![REPORT CORRENTE]+1
- salvo il record
- apro la query1
- vado al record successivo.
Fino ad adesso ottengo questo:
stampo un file pdf composto da tante pagine quanti sono i partecipanti all'evento; su ogni pagina compare una singola fattura (dove gli intestatari sono corretti perchè di volta in volta cambia l'ID CLIENTE) con però il problema che tutte le fatture realizzate hanno lo stesso numero.
Non riesco a stampare una singola fattura per ogni record filtrato dalla query1.
Il ciclo for che dovrebbe far ripetere la macro per tutti i record filtrati dalla query1 non riesco a realizzarlo.
Lo so che ho scritto troppe cose ma non sapevo come spiegarmi meglio.