Drago mi je da ti se resenje dopada
Citat:
Samo, ne shvatam zasto koristimo tabelu za datumski opseg. Zasto je losije rjesenje koristiti [Forms]![Control]?
Bilo koji kveri sa parametrom je manje upotrebljiv nego kveri bez parametra, generalno govoreci. Kveriji sa parametrom traze parametar pre nego sto se izvrse. Znaci, imas prekid u izvrsavanju akcije. To ih cini skoro neupotrebljivim za programsak resenja. Postoji nacin da se kroz programski kod posalju parametri za kveri, ali je prilicno komplikovano i malo ljudi to ume da uradi, a jos manje ih to zaista i radi. parametarski kveriji su 'quick and dirty' metod za pocetnika da dobiju neku kao fleksibilnost.
Ako su parametri vezani za kontrole na formi, upotrebljivost kverija je jos vise ogranicena - da bi kveri uopste radio, mora biti otvorena i forma.
Kveri bez parametara se moze pozvati lako iz programskog koda. Ako se 'parametri' nalaze u tabeli, mnogo je lakse programski puniti tabelu, kad god zatreba, pa se kveri moze pozvati sa vise razlicitih mesta a ne samo sa jedne forme.
Primeti da je tabela koja pamti datumski opseg napravkljena tako da moze imati samo jedan rekord, ne vise. Bilo bi zlo da imas vise opsega, kveri ne bi znao koji da upotrebi.
Ono sto treba da zapamtis iz ovog primera jeste logika kako se odredjuje da li se dva intervala preklapaju ili ne. Put kojim si ti krenuo je ono sto svi urade u prvom pokusaju. Taj put na kraju zavrsava monstruoznim lancom AND i OR koji uporedjuju sve moguce odnose krajeva dva intervala. Jedan mnogo pametan covek, Joe Celko, uvideo je da se "dva intervala preklapaju kad god ne mozes da dokazes da se ne preklapaju" a izraz za nepreklapanje intervala je u sustini veoma prost. Glasi ovako:
AKO (jedan interval zavrsava pre nego sto je drugi poceo) ONDA (se oni ne preklapaju). U svim ostalim slucajevima se preklapaju (soba je zauzeta
Kako sam namestio polje 'Zauzeta' - kodirao sam izraz za nepreklapanje intervala, pa sa NOT dobio suprotni smisao - prelapanje:
Code:
Zauzeta: NOT([Period_Do]<[OD] Or [Period_OD]>[Do])
Mozda bude jasnije ako nacrtamo sliku:
Ova dva intervala se ne preklapaju:
Code:
Period_Od Period_DO Soba_Od Soba_Do
----{-----------}--------------[---------------]---------------> vreme
ni ova dva se ne preklapaju:
Code:
Soba_Od Soba_DO Period_Od Period_Do
----[-----------]--------------{---------------}---------------> vreme
U svim ostalim kombinacijama intervali se preklapaju ili bar dodiruju.
Prva slika se moze zapisati kao ([Period_Do]<[Soba_OD] )
Druga slika se pise kao ([Period_OD]>[Soba_Do])
Ako vazi prva slika ili vazi druga slika, onde je soba slobodna (intervali se ne poklapaju)
Znaci imamo:
ne-preklapanje: (([Period_Do]<[Soba_OD] ) OR ([Period_OD]>[Soba_Do])) <=> soba je slobodna
preklapanje je suprotno od ne-preklapanja (genijalni Joe Celko

pa dobijamo ono sto smo upotrebili u kveriju
NOT (([Period_Do]<[Soba_OD] Or [Period_OD]>[Soba_Do]) <=> soba je zauzeta
Bulova algebra cuda cini
Napomena: ako istu sobu ujutru moze da napusti jedan gost, a u nju udje drugi gost poslepodne, onda ispada da tu istu sobu u jednom danu koriste dva gosta. Koliko znam, to tako i funkcionise u stvarnom zivotu. Da bi to tacno modelirao, mozda ti trebaju negde i znakovi jednakost u izrazu za preklapanje. Experimentisi malo dok ne ne nadjes pravo resenje. To je slucaj kad se intervali dodiruju.
Ja sam ti samo pokazao kako se to 'teorijski' moze odraditi, a ti sad dalje kopaj. Na forumu Baze Podataka imas teme tipa 'Mozgalice' Bila je jedna mozgalica o gostima u restoranu, kad su dosli a kad su otisli, pa se trazilo zauzece iz momenta u momenat. Kolega Negyxo je dao lep graficki prikaz odnosa dva intervala. U toj temi ima i nekih interesantnih ideja. Tebi je verovatno rano da se bavis tim problemom na tom nivou, ali da znas za buducnost
Nemoj da gubis pouzdanje u svoje znanje Accessa, ovo i nije Access, ovo je vise problem modelovanja vremenski zavisnih podatak u relacionim bazama. A to je vrlo tesko i za iskusne majstore. Sve sto u sebi ukljucuje analizu vremena i vremenski zavisnih informacija je vrlo tesko odraditi u relacionim sistemima, a u ne-relacionom jos teze.
Srecan rad i javi nam kako ide, pa nekog leta da svratimo u taj hotel na lozu. Ja sam daleko, ali je Getsbi blizu.