jbart ha scritto:
Ok Alex grazie.
Tu mi hai risposto così: "Estrai le Camere che NON hanno IniziPrenotazione<DataFineCheck AND FinePrenotazione>DataInizioCheck, otterrai le Camere che nel Periodo di Check sono senza conflitti." ed io non ho capito come fare.
Il problema nasce proprio quì ovvero la Struttura del Database da realizzare.
jbart ha scritto:
Cercherò di essere più chiaro per darti così il modo di aiutarmi. Sto cercando di creare un dbs che mi consenta di effettuare le prenotazioni di camere del mio B&B in modo semplice.
Chiaro.
jbart ha scritto:
Ad ora ho creato una serie di tabelle nelle quali inserire i dati anagrafici dei diversi clienti;
Questo letto così sembrerebbe tu abbia Tante Tabelle quanti sono i Clienti...?
Se così fosse la cosa principale è capire che questo è un errore critico di sostanza, per il quale anche dandoti la soluzione serve in realtà tu abbia più chiari i concetti MINIMI di Normalizzazione dei dati... perchè contrariamente ad Excel, un Database lavora in modo diverso, e vincolato e se tu non usi quel metodo non riesci a gestire i dati.
La Tabella Anagrafiche sarà solo 1 con i dati che servono e fai attenzione che le tabelle devono avere la ChiavePrimaria(PK) e relazionarsi alle altre Tabelle in modalità 1-Molti o Molti-1 o anche Molti-Molti, ques'ultima è indicata nella 3° Forma Normale della struttura che devi assolutamente comprendere e sapere.
jbart ha scritto:
poi ho creato una tabella che ho chiamato prenotazioni e nella ho creato un campo "camera assegnata" ad un cliente (che rilevo dalla tabella clienti) e altri campi tra i quali il campo Data check in e Data check out.
La tabella Prenotazioni deve avere:
1° NumeroPrenotazione (questa è la PK della Tabella)
2° NumeroCamera (Questo è un'indice della tabella per ora potrebbe non essere relazionato ad altre tabelle)
3° IdCliente è la FK che si relaziona con la PK dell'anagrafica perchè potrai avere che 1 Cliente ha Molte Prenotazioni
4° CheckIn (campo data)
5° CheckOut (campo data)
Questo sono i campi ESSENZIALI, gli altri non importano per la questione della determinazione camere libere.
jbart ha scritto:
La cosa che vorrei fare è quella di sapere in ogni momento quale camera ho già assegnato per quale periodo così da evitare di riassegnare la stessa camera ad altro cliente per un analogo periodo o per un periodo che si sovrappone a quello in precedenza prenotato.
Devo quindi lavorare sulle stesse tabelle o devo crearmi delle query o dei report sui quali avere la situazione chiara attraverso un planner che mi faccia vedere le camere occupate e per quali periodi e conseguentemente quelle libere.
Scusa se sono stato prolisso ma sto cercando di farmi capire non avendo io un linguaggio tecnico.
Ora siccome non hai una Tabella con l'elenco delle Camere, quello che risulta più facile è trovare quali Camere sono sicuramente occupate, e per differenza hai quelle libere.
Devi arrivarci gradualmente a questi passaggi altrimenti non ne esci.
Questo è un Demo che però credo possa farti più danno che aiuto, sia perchè usa un Activex che potresti non avere sia perchè è già di livello abbastanza avanzato come codice di gestione delle Interfacce, ma le query che trovi e le tabelle sono proprio quelle di cui hai bisogno anche se si rifà a dei Lettini in una Spiaggia...!