Avatar billede riishoj Nybegynder
01. september 2004 - 15:19 Der er 6 kommentarer og
1 løsning

Hjælp til select

Jeg kan desværre ikke få denne select til at fungere efter hensigten. Meningen er, at den i et ugeskema skal indsætte et rødt felt med en tekst mandag i 3. lektion i en periode defineret af minDato og maxDato og derefter af minDato2 og maxDato2. Det virker godt nok i 1. periode (minDato og maxDato), men når jeg når til 2. periode (minDato2 og maxDato2), så får jeg indsat rødt felt i alle lektioner og på alle ugen dage. Håber I kan hjælpe.

strSQL = "SELECT dag,tekst,lektion FROM blok WHERE reservation='edb' AND dag='" & SQLdag(dag) & "' AND lektion='" & lektion & "' AND mindato <= #" & datoStr & "# AND maxDato >= #" & datoStr & "# OR mindato2 <= #" & datoStr & "# AND maxDato2 >= #" & datoStr & "#"
set rs = Conn.Execute(strSQL)

if not (rs.EOF or rs.BOF) then
Response.write"<td border=1  bordercolor=#0000FF bordercolordark=#FFFFFF bordercolorlight=#0000F width=18% height=40 bgcolor=red><font face=Verdana size=1 color=#FFFFFF><p align=center>"&rs("tekst")&"</font></td>"
Avatar billede ldanielsen Nybegynder
01. september 2004 - 15:24 #1
prøv at sætte parenteser i din sql omkring de logiske grupper af forbehold

reservation='edb'
AND dag='" & SQLdag(dag) & "'
AND lektion='" & lektion & "'
AND
(mindato <= #" & datoStr & "# AND maxDato >= #" & datoStr & "#)
OR
(mindato2 <= #" & datoStr & "# AND maxDato2 >= #" & datoStr & "#)

Noget i den stil
Avatar billede ldanielsen Nybegynder
01. september 2004 - 15:25 #2
Der skal vist være en mere:

reservation='edb'
AND dag='" & SQLdag(dag) & "'
AND lektion='" & lektion & "'
AND
(
(mindato <= #" & datoStr & "# AND maxDato >= #" & datoStr & "#)
OR
(mindato2 <= #" & datoStr & "# AND maxDato2 >= #" & datoStr & "#)
)
Avatar billede riishoj Nybegynder
01. september 2004 - 15:30 #3
Næ, det ændrer ikke noget. Jeg kan godt se hvorfor det går som det går, da det jo enten er alle betingelserne foran OR der skal opfyldes (og så virker det efter hensigten) eller det som står efter OR, og så er betingelsen jo bare den rigtige dato og ikke alle de andre forbehold. Det skal laves, så alle de andre forbehold også virker i forbindelse med manDato2 og maxDato2.
Avatar billede riishoj Nybegynder
01. september 2004 - 15:46 #4
Jo, for søren, det virker. Jeg var kommet til at sætte dobbeltparenteser foran og efter OR. Checker lige igen.
Avatar billede riishoj Nybegynder
01. september 2004 - 15:47 #5
Du har reddet min dag. 1000 mange tak og send lige et svar så du kan få point.
Avatar billede ldanielsen Nybegynder
01. september 2004 - 15:49 #6
Jeg tænkte det nok. :o)

Men sig mig, åbner du sådan et recordset for hver enkelt dag i ugen? Det burde kunne gøres i ét hug.
Avatar billede riishoj Nybegynder
01. september 2004 - 15:58 #7
Næ, du skal forestille dig et reservationsskema på ugebasis. Nogle af positioner kan ikke reserveres (de røde felter) Hvis der er flere positioner, som skal blokeres, så har jeg de tilsvarende rækker i databasen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester