Mkt knepig if-sats

ASP

9 svar · 243 visningar · startad av Rossifumi

Medlem sedan okt. 20001 558 inlägg
Trådstart#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?

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

Medlem sedan okt. 20001 558 inlägg
#5

Tack emission & @nders :)

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.

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

Medlem sedan okt. 20001 558 inlägg
#8

Pixelette :)

Medlem sedan okt. 20001 558 inlägg
#9

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

Medlem sedan juli 2000619 inlägg
#10

brajnwave@hotmail.com

Tack!

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)