reka1Medlem sedan sep. 2001662 inlägg
Håller på med ett bokningssystem. För att förhindra dubbelbokningar försöker jag få till en sql-sats som "känner av" ifall tiden redan är bokad.
Om. te.x. tiden 11:30 försöks bokas men ngn annan har redan tagit från 11:00 till 12:00 så stoppas det hela.
Kör med access.
aasahMedlem sedan mars 20033 451 inlägg
Hur ser databasens struktur ut?
reka1Medlem sedan sep. 2001662 inlägg
Själva tidskolumnerna är enkla. En "s-tid" (starttid) och en "a-tid" (avslutningstid).
Formatet är i stil med "17:30", "08:00", osv
aasahMedlem sedan mars 20033 451 inlägg
Sök efter bokningar som omfattar vald tid och kolla att resultatet är tomt innan du sätter in.
Select * from Bokning where min_tid >= s-tid and min_tid <= a-tid;
min_tid är den du vill boka. Sedan får du kolla om du fick träff.
Om nej ==> bra, boka på
Om ja ==> trist, upptaget
Du kan ju ev. vilja kolla att det är samma datum också, då får du slänga in det i where-klausulen.
reka1Medlem sedan sep. 2001662 inlägg
Tack för svar. Men dessvärre är det ett problem.
Starttiden: 10:00 och sluttiden 11:00 finns lagrad i databasen.
Anger man starttid 10:00 o sluttid 11:00 i inmatningen får man beskedet att lokalen är ledig.
Anger man däremot starttid 10:01 o med samma sluttid får man besked om att lokalen är ledig :-/
reka1Medlem sedan sep. 2001662 inlägg
Det har löst sig :-) Fick hjälp från annat håll. Den korrekta sql:en ser ut som följer.
SQL = "select * from bokningsinfo where starttid >= #" & starttid & "# and starttid <= #" & sluttid & "# or sluttid >= #" & starttid & "# and sluttid <= #" & sluttid & "#"