---
title: "Bokningssystem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/121238-bokningssystem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Boorg"
published: "2005-01-28T13:58:49.000Z"
updated: "2005-02-04T09:08:58.000Z"
replies: 7
views: 434
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/121238-bokningssystem"
---

# Bokningssystem

## #1 — Boorg, 2005-01-28T13:58Z

Håller på att fixa med ett bokningsystem som har en bugg...
Ifall man är inne och bokar en tjänst en dag t.ex från kl9.00 till 12.00 om man nu bokar den så går det inte för någon annan att boka den tiden. 

Men ifall man har sidan uppe t.ex om jag öppnar sidan och tar väldigt lång tid på mig och någon annan går in och bokar tiden före mig och att sedan jag bokar tiden så blir det dubbelbokning. 

```
for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next
```

Nu lägger scriptet in data i databasen 1 timma itaget(om ni fattar) jag skulle vilja skriva något så att den kollar innan den lägger in timman ifall det finns något där. Men det vill sig inte riktigt.

Någon som kan komma på något klurigt?

Mvh Jesper

Permalänk: https://www.webforum.nu/p/121238

## #2 — Boorg, 2005-01-28T14:11Z

Har testat många men utan resultat :/

Här är ett exempel

```
for i = Starttid to Sluttid
If Not Datum = "" And i = "" then
		Response.Write Alert("Fel. Dubbelbokning")
		Response.Write "<script>history.go(-1);</script>"
End If 
next

for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next
```

Permalänk: https://www.webforum.nu/p/1540828

## #3 — Palle, 2005-01-28T14:24Z

Kolla i databasen om datumet du vill spara redan finns där.. ex: 

```
[red]...

Set objRs = objConn.Execute("SELECT Datum FROM tbl WHERE Datum = '"& Datum &"'")
	If objRs.EOF Then
		'Ok, datumet finns inte så nu kan vi spara.
		objConn.Execute("INSERT INTO tbl(ObjektId, ResourceNo, Datum, Tid) VALUES("& ObjektID &", "& request.cookies("Anstnr") &", '"& Datum &"', "& i &")"),,128
	Else
		'Dubbebokning
	End If
	objRs.Close
Set objRs = Nothing

...[/red]
```

Notera att du får ändra lite beroende på Dina datatyper, objekt m.m. :)

Permalänk: https://www.webforum.nu/p/1540834

## #4 — Boorg, 2005-01-28T14:36Z

Ahh den såg inte fel ut du...
Kan man köra And i WHERE satsen? jag måste juh kolla ifall tiden på det speciella datumet är ledigt.. 
Annars va denna Nästan bra, Det enda med denna är att den köra alerten hela tiden :/

```
sql = "SELECT * FROM _Portal_bokning WHERE Datum = '" & Datum &"'"
rs.open sql, con, 1, 2

for i = Starttid to Sluttid
If Datum = Rs("Datum") And i = Rs("Tid") then
		Response.Write Alert("Fel! Dubbelbokning")
		Response.Write "<script>history.go(-2);</script>"
End If 
next

If Not Datum = Rs("Datum") And i = Rs("Tid") then
rs.close
sql = "SELECT * FROM _Portal_bokning WHERE 1 = 2 "
rs.open sql, con, 1, 2
for i = Starttid to Sluttid
	rs.AddNew
	rs("ObjektID") = ObjektID
	rs("ResourceNo") = request.cookies("Anstnr")
	rs("Datum") = Datum
	rs("Tid") = i
	rs.update
next
rs.close
Else
rs.close
End If
```

Permalänk: https://www.webforum.nu/p/1540839

## #5 — @nders, 2005-01-28T14:50Z

Ja, du kan ha så många villkor du vill i WHERE-satsen. Separera villkoren med AND du. :)

Permalänk: https://www.webforum.nu/p/1540844

## #6 — Boorg, 2005-01-28T14:54Z

Tackar så mycket för all hjälp (igen) :P

Permalänk: https://www.webforum.nu/p/1540847

## #7 — Boorg, 2005-02-04T07:06Z

Jag får det inte till att funka ändå!

Nu andvänder jag denna:

```
Set Rs = Con.Execute("SELECT Datum FROM _Portal_bokning WHERE Datum = '" & Datum & "' AND Tid =" & starttid &" OR Datum = '" & Datum & "' AND Tid = " & Sluttid & "")
	If Rs.EOF Then
' **** Addar tiderna till databasen **************************************

Rs.Close
Sql = "SELECT * FROM _Portal_bokning WHERE 1 = 2 "
Rs.open sql, Con, 1, 2
for i = Starttid to Sluttid
'	rs.AddNew
'	rs("ObjektID") = ObjektID
'	rs("ResourceNo") = request.cookies("Anstnr")
'	rs("Datum") = Datum
'	rs("Tid") = i
'	rs.update
Response.Write "Datum " & Datum & " och Starttid " & Starttid & " och Sluttid " & Sluttid & " och Tid " & i & "<br>"
next
Rs.Close
Else
' **** Ger felmedelande om det är dubbelbokning **************************

		Response.Write Alert("Fel! Dubbelbokning")
		Response.Write "<script>history.go(-2);</script>"
	End If
```

Och Jag vet att starttid och sluttid redan finns där. plus att jag skriver ut denna.. detta är Det som kommer in nu.

Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 6
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 7
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 8
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 9
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 10
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 11
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 12
Datum 2005-03-31 och Starttid 6 och Sluttid 13 och Tid 13

Tid är altså typ. Klockan 6 klockan 7 osv.

Permalänk: https://www.webforum.nu/p/1547032

## #8 — @nders, 2005-02-04T09:08Z

Om du inte fått det att funka, varför har du då accepterat ditt senaste inlägg som slutgiltigt svar :q

Permalänk: https://www.webforum.nu/p/1547064

---

Tråden på webben: https://www.webforum.nu/amne/asp/121238-bokningssystem
