webForumDet fria alternativet

Tidsproblem

5 svar · 218 visningar · startad av reka1

reka1Medlem sedan sep. 2001662 inlägg
#1

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
#2

Hur ser databasens struktur ut?

reka1Medlem sedan sep. 2001662 inlägg
#3

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
#4

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
#5

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
#6

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 & "#"

Genererad på 372 ms · cache AV · v20260730165559-full.f96bc7eb