webForumDet fria alternativet

Mkt knepig if-sats

ASP

9 svar · 227 visningar · startad av Rossifumi

Medlem sedan okt. 20001 558 inlägg
Frågan#1

Ifall ni kollar på denna sidan (klicka på lägg till maskin) så ser ni vad det är som skall göras.

Min If-sats ser ut så här idag:

bolIsOk = true

	sMaskin = Request.Form("maskinID")
	sStartDatum = Request.Form("hyrUtDatum1") & "-" & Request.Form("hyrUtDatum2") & "-" & Request.Form("hyrUtDatum3")
	sStartDatum = CDate(sStartDatum)
	sSlutDatum = Request.Form("hyrInDatum1") & "-" & Request.Form("hyrInDatum2") & "-" & Request.Form("hyrInDatum3")
	sSlutDatum = CDate(sSlutDatum)
	sPerson = Request.Form("hyrPerson")
	sForetag = Request.Form("hyrForetag")
	
	mySQL = "SELECT * FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " ORDER BY hyrUtDatum ASC"
	Set objRS = objConn.Execute(mySQL)
		Do While Not objRS.EOF
			[b]If (sStartDatum => objRS("hyrUtDatum") AND sStartDatum =< objRS("hyrInDatum")) OR (sSlutDatum => objRS("hyrUtDatum") AND sSlutDatum =< objRS("hyrInDatum")) Then bolIsOk = false[/b]
		objRS.MoveNext
		Loop

	If bolIsOk = true Then
		mySQL = "INSERT INTO maskinHyrTable (hyrMaskinID, hyrUtDatum, hyrInDatum, hyrFakturaStart, hyrFakturaSlut, hyrPerson, hyrForetag) VALUES(" & sMaskin & ", #" & sStartDatum & "#, #" & sSlutDatum & "#, #" & sStartDatum & "#, #" & sStartDatum & "#, '" & sPerson & "', '" & sForetag & "')"
		objConn.Execute(mySQL)
	Else
		Response.Write "<table width=""100%"" height=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr align=""center"" valign=""middle""><td class=""text""><a href=""javascript:history.back(-1)"" class=""blue"">Ditt val krockar med ett befintligt</a></td></tr></table>"
	End If

Men den funkar bara delvis.

Ifall jag t.ex vill lägga till en bokning som sträcker sig över en redan utförd bokning, alltså inte börjar/slutar i en, så går det alldeles utmärkt vilket inte är så bra.

Finns det ingen som vet hur man kan lösa detta?

------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi, Nastro Azurro Honda

[Redigerat av Rossifumi den 11 jun 2001]

Medlem sedan dec. 19996 721 inlägg
#2
mySQL = "SELECT 1 FROM maskinHyrTable WHERE hyrMaskinID = " & sMaskin & " AND ((hyrInDatum BETWEEN #" & sStartDatum & "# AND #" & sSlutDatum & "#) OR (hyrInDatum > #" & sSlutDatum & "# AND hyrUtDatum < #" & sSlutDatum & "#))"

Set objRS = objConn.Execute(mySQL)

If objRS.EOF Then
mySQL = "INSERT INTO maskinHyrTable (hyrMaskinID, hyrUtDatum, hyrInDatum, hyrFakturaStart, hyrFakturaSlut, hyrPerson, hyrForetag) VALUES(" & sMaskin & ", #" & sStartDatum & "#, #" & sSlutDatum & "#, #" & sStartDatum & "#, #" & sStartDatum & "#, '" & sPerson & "', '" & sForetag & "')"
objConn.Execute(mySQL)
Else
Response.Write "<table width=""100%"" height=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr align=""center"" valign=""middle""><td class=""text""><a href=""javascript:history.back(-1)"" class=""blue"">Ditt val krockar med ett befintligt</a></td></tr></table>"
End If
Medlem sedan dec. 20003 563 inlägg
#3

Kan vara jag som inte vet allt för mycket men borde man inte ha en end if i alla fall?

Do While Not objRS.EOF
If (sStartDatum => objRS("hyrUtDatum") AND sStartDatum =< objRS("hyrInDatum")) OR (sSlutDatum => objRS("hyrUtDatum") AND sSlutDatum =< objRS("hyrInDatum")) Then 
bolIsOk = false
Exit Loop
end if
objRS.MoveNext
Loop

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

[Redigerat av cyprys den 11 jun 2001]

Medlem sedan okt. 20001 558 inlägg
#4

emission: Funkar perfekt, jag och @nders kom fram till en IF-sats som funkar men din lösning kanske är lite behändigare :)

If (sStartDatum <= objRS("hyrUtDatum") AND sSlutDatum >= objRS("hyrInDatum")) OR (sStartDatum => objRS("hyrUtDatum") AND sStartDatum =< objRS("hyrInDatum")) OR (sSlutDatum => objRS("hyrUtDatum") AND sSlutDatum =< objRS("hyrInDatum")) Then bolIsOk = false

Cyprus: Nej, det behövs inte. Fråga @nders varför ;) :e

------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi, Nastro Azurro Honda

Medlem sedan okt. 20001 558 inlägg
#5

Tack emission & @nders :)

------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi, Nastro Azurro Honda

Medlem sedan juni 200032 967 inlägg
#6

emission: ja jävlar! bra där!

rossifumi: vassego!

cyprys: om man har skrivit som du gjort i ditt inlägg dvs med en radbrytning efter then så måste du ha end if. står hela if-satsen på samma rad ska du inte ha det.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juli 2000619 inlägg
#7

Inte för att det har så mycket till inlägget att göra men jag undrar om någon kan tala om vad det är för typsnitt som används typ där det står "All kopiering förbjuden" på länken som rossi skickade med?

/brw

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan okt. 20001 558 inlägg
#8

Pixelette :)

------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi, Nastro Azurro Honda

Medlem sedan okt. 20001 558 inlägg
#9

Ge mig din e-post så skickar jag det :)

------------------
"When the 500 isn't right, you're in hell, when a Superbike isn't right, it's ok"
Valentino Rossi, Nastro Azurro Honda

Medlem sedan juli 2000619 inlägg
#10

brajnwave@hotmail.com

Tack!

------------------
Ingenting är omöjligt, bara en utmaning.

286 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
140 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)