Competenza mese per mese

di il
8 risposte

Competenza mese per mese

Innanzitutto buon giorno e grazie a tutti, ho seguito questo utilissimo forum, diverse volte dall'esterno ma ora mi sono impantanato in un problema (magari banale), e ho la necessità di venire a disturbare per un consiglio. Vengo subito al sodo.

Parliamo di prenotazioni di un piccolo Hotel.
La Tabella prenotazioni ha diversi campi tra cui i campi in formato data [Check_in] e [Check_Out] e [Nationality].

Ho bisognmo di creare una query statistiche mensile che mi restituisca il numero di notti vendute per ogni singola Nazionalità. Sarebbe semplice con una querry a campi incrociati se non per il fatto che ...che le prenotazioni cadono anche a cavallo di due mesi, per cui una prenotazione dal 20 Gennaio al 10Febbraio va imputata per 12 notti al mese di Gennaio e per 9 Nottial mese di Febbraio.

Chi mi da cortesemente una dritta per uscire da questo loop mentale

Grazie in anticipo.

8 Risposte

  • Re: Competenza mese per mese

    Prova se vuoi e se ti funziona, a guardare questo DEMO:
    http://forum.masterdrive.it/access-79/uso-msflexgrid-in-access-63965/

    Sostanzialmente emulava un CALENDARIO PRENOTAZIONE... la Query per verificare le disponibilità e il prenotato potrebbero aiutarti.

    Mmmmm rileggendo direi che hai l'esigenza è diversa...

    Se tu gestissi le prenotazioni a GIORNI, non avresti il problema... nel senso se io prenoto in fase di IMMISSIONE 1 Mese, in realtà fisso 30gg... nel tuo caso probabilmente sarebbe l'unico modo sensato per far combaciare esigenza e funzionalità.

    In sostanza gestisci una Relazione 1-Molti, una prenotazione Tanti Giorni, in modo da sapere la distribuzione, potrebbe venirti utile anche per graficare...
    Verifica bene tuttavia, se la tua esigenza fosse solo quella chiesta, in caso potresti semplicemente inserire N records quanti sono i MESI inclusi...!
    Ovvero se prenoti dal 15Gen÷15FEB, nella tabella inserirai 2 Records:
    1° 15gg 15GEN-31GEN
    2° 15gg 1FEB-15FEB

    Questo ti consentirebbe di avere a disposizione i periodi...
    Certo che se vuoi fare STATISTICHE anche nei WE o nei giorni, converrebbe invece tu facessi come ipotizzavo all'inizio...
  • Re: Competenza mese per mese

    Mhh purtroppo non riesco a farlo funzionare.
    Sto provando ad inserire come valore di ricerca per la query la data di [inizio mese] e [Fine mese]
    Quindi la query mi restutuirà tutte le prenotazione che abbiano un [Check_in] o[Check_Out] cadono in quel mese
    da li devo creare un calcolo che in base a [Check_in] e [Check_Out] [inizio mese] e [Fine mese] di ogni record mi dica quanti giorni rientrano in quel periodo, sperando di riuscire a mettere insieme una equazione che stia in piedi.

    Ma ho dei dubbi.
  • Re: Competenza mese per mese

    Secondo me non hai capito quello che ti ho detto...!
    Come vuoi fare tu è fattibile ma più complesso... per ogni periodo devi andarti a calcolare i GG da CheckIN a Finemese il calcolo è anche semplice... ma non so come tu stia procedendo e dove trovi difficoltà, certo è che funziona se hai un'interrogazione FISSA, se devi analizzare una cosa come statistica a prescindere non riuscirai molto facilmente..., allora vedrai che il mio suggerimento ti tornerà in mente.
  • Re: Competenza mese per mese

    Si Alex forse non ho capito. Leggo meglio il tuo suggerimento e cerco di compèrendere.
  • Re: Competenza mese per mese

    Certo che poter avere anche un grafico di Gantt mi farebbe comodo (in futuro) ma non mi è chiara la realzione 1 a molti con una tabella di giorni, e come popolo questa tabella (dei giorni).
  • Re: Competenza mese per mese

    Calligan ha scritto:


    Certo che poter avere anche un grafico di Gantt mi farebbe comodo (in futuro) ma non mi è chiara la realzione 1 a molti con una tabella di giorni, e come popolo questa tabella (dei giorni).
    Scarica quel DEMO che ti ho illustrato, fa il GANTT... con un OCX purtroppo perchè allora lo usavo... ora non lo uso più, utilizzo direttamente Excel.
    In ogni modo per riempire la Tabella serve un pochetto di Codice...

    Esempio se devi prenotare un periodo, nella Tabella Principale avrai
    [CheckIn] = 15/GEN/2017
    [CheckOut]= 15/MAR/2017
    Quando premi il Button per SALVARE il dato o confermare la prenotazione, devi generare una routine che cicla le date di mese in mese...!
    Esempio se provi nella Finestra Immediata
    
    ?DateDiff("m",#15/01/2017#,#15/03/2017#)
    2
    Significa che i mesi interessati sono Risultato+1=3
    Definisco la Variabile [Risultato]=Differenza in Mesi tra (CheckIn) e (ChceckOut) per farti capire di cosa parlo anche nel seguito.
    infatti in questo esempio sono Gennaio, Febbraio e Marzo(ovviamente la differenza è 2 ma i mesi coinvolti sono 2+1).

    Quindi facendo un ciclo da 0 a Risultato puoi definire i periodi di interesse ed i loro impatti...
    I dati da salvare nella Tabella lato Molti sono:
    IdDettaglio(Counter)
    ChiaveEsterna(IdPrenotazione)
    DataInizio
    DataFine
    Giorni
    devi tener presenti 3 punti di lavoro:
    1° Valore=0 significa che sei nel primo Mese, nell'esempio che facevo sopra siamo a Gennaio
    In questo Step devi contare i giorni da CheckIn a Fine mese e li salvi nella Tabella lato M
    2° Valore>0 AND Valore<Risultato Periodo intermedio tra le date In-Out, quindi nel nostro esempio=1 e siamo nel mese di Febbraio
    In questo caso tutto il mese è inglobato, quindi 1° del mese ed ultimo del mese con il numero di gg relativi
    3° Valore=Risultato questo è l'ultimo Mese corrisponde al mese del CheckOut
    In questo step devi contare i Giorni dal 1° del mese alla data di ChechOut...

    Sembra complicato, ma sono poche righe di codice nel ciclo... ed una manciata per inserire nella Tabella i Records specifici che ne conseguono...(nell'esempio sopra sono 3 Records se salvi i Periodi del MESE)... ma possono bastare senza problemi.
  • Re: Competenza mese per mese

    Grazie Alex per la tua spiegazione chiara.
    Inizio ad uscire dal pantano, ora ci lavoro e studio.
  • Re: Competenza mese per mese

    Calligan ha scritto:


    Grazie Alex per la tua spiegazione chiara.
    Inizio ad uscire dal pantano, ora ci lavoro e studio.
    Se vorrai valutare la generazione di GANTT, puoi provare a sfruttare questo Demo fatto insieme a Max che ritengo sia veramente un ottimo strumento.

    http://forum.masterdrive.it/access-79/creare-gantt-i-report-access-90533/
Devi accedere o registrarti per scrivere nel forum
8 risposte