Avatar billede sorenmt84 Juniormester
09. december 2002 - 18:41 Der er 16 kommentarer og
1 løsning

Hvis xx = xx eller i mellem x og y

Har dette:
For y = 1 to 6
If blnLast <> True Then
Response.Write "<tr>"
For x = 1 to 7
intLoopDay = intLoopDay + 1
If intLoopDay >= intFirstDay Then
dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
If Month(dtmCurDate) = Month(dtmFirstDate) Then
Set rs=oConn.Execute("Select * from kalender where fra_dag="&day(dtmCurDate)&" " & " and fra_mdr="&month(dtmCurDate)&" " & "and fra_aar ="&intYear )
If dtmCurDate = dtmToday Then
If Not rs.EoF Then
Response.Write "<td align=center><a class='sort_tekst' href=default.asp?side=kalender&subside=info&dato="&dtmCurDate&">" & Day(dtmCurDate) & "</a></td>"
Else
Response.Write "<td align=center><a class='bla1_tekst' href=default.asp?side=kalender&subside=info&dato="&dtmCurDate&"><b>" & Day(dtmCurDate) & "</b></a></td>"
End If
Else
If Not rs.EoF Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.Mappath("../inc/db/spejder.mdb")
Conn.Open DSN
strSQL = "Select * From kalender where fra_dag = " &  Day(dtmCurDate) & " and fra_mdr = " & Month(dtmCurDate) & " and fra_aar = " & Year(dtmCurDate)
Set rs_info = Conn.Execute(strSQL)
Response.Write "<td align=center><a class='bla_tekst' href='default.asp?side=kalender&subside=info&dato="&dtmCurDate&"' title='"
Do until rs_info.eof or rs_info.bof
response.write rs_info("titel") & "&#10;"
rs_info.MoveNext
Loop
Set rs_info = Nothing
response.write "'><b>" & Day(dtmCurDate) & "</b></a></td>"

Det er en kalender, som udskriver alle dage i en måned, men fremhæver de dage der er et arrangement. Jeg har lavet det sådan så når man holder musen over dagen, viser de arrangementer der sker. Men et arrangement kan godt holdes over flere dage, f.eks. fra. 24-12-2002 - 26-12-2002, på den måde jeg har det nu, vil det kun være den 24-12 der vil blive fremhævet, men jeg kunne godt tænkte mig at den 25. og 26. også blev markeret... Men hvordan?

Har følgende felter
fra_dag = den dag arrangementet starter
fra_mdr = den måned arrangementet starter
fra_aar = det år arrangementet starter

til_dag = den dag arrangementet slutter
til_mdr = den måned arrangementet slutter
til_aar = det år arrangementet slutter
Avatar billede eagleeye Praktikant
09. december 2002 - 21:14 #1
Så du har en SQL som for en information omkring et evetnt det er denne??

strSQL = "Select * From kalender where fra_dag = " &  Day(dtmCurDate) & " and fra_mdr = " & Month(dtmCurDate) & " and fra_aar = " & Year(dtmCurDate)
Avatar billede eagleeye Praktikant
09. december 2002 - 21:16 #2
Har du et start og slut tidspunkt på et event?
Avatar billede sorenmt84 Juniormester
09. december 2002 - 21:58 #3
Ja der er min SQL... Slut tidspunktet udgør så felterne til_dag, til_mdr og til_aar bliver det sat sammen giver det f.eks. 09-12-2002
Avatar billede eagleeye Praktikant
09. december 2002 - 22:08 #4
Ok og det er som 3 kolonner.. Der kan blive sævrt at test på alle muligheder eks hvis et evet er fra 30-11 -> 02-12 så er det ikke bare at bare at lave en >= på dagen så skal man også tjekke på at mådede er størrer. Og helt svært bliver det hvis man tager 31-12-2002 -> 01-01-2003  så skal den tjekke på alle kolonnerne..


strSQL = "Select * From kalender where (fra_dag = " &  Day(dtmCurDate) & " and fra_mdr = " & Month(dtmCurDate) & " and fra_aar = " & Year(dtmCurDate)) OR ((fra_dag < " &  Day(dtmCurDate) & " and fra_mdr = " & Month(dtmCurDate) & " and fra_aar = " & Year(dtmCurDate)) AND (til_dag >= " &  Day(dtmCurDate) & " and til_mdr = " & Month(dtmCurDate) & " and til_aar = " & Year(dtmCurDate))


Prøv med denne den skulle kunne vise et evten fra eksvis den 24-26 i samme månede.
Avatar billede sorenmt84 Juniormester
09. december 2002 - 22:11 #5
Undskyld... Det har jeg glemt og oplyse... Jeg har også følgende felter:
fra
og
til
De inholder en "almindelig" dato for henholdsvis start og slut.. Altså en komplet dato på f.eks. 31-12-2002
Avatar billede eagleeye Praktikant
09. december 2002 - 22:14 #6
Ok :) så er det noget lettere at teste på. Er typen af kolonnen dato?
Avatar billede sorenmt84 Juniormester
09. december 2002 - 22:17 #7
Nej det er bare et tekst felt..
Avatar billede eagleeye Praktikant
09. december 2002 - 22:26 #8
Så skal man bare huske at SQL bruger US/UK dato format altså yyyy-mm-dd eller dd-mm-yyyy

dato = Year(dtmCurDate) & "-" & Month(dtmCurDate) & "-" & Day(dtmCurDate)
"SELECT * FROM kalender WHERE CDate(fra) <= #" & dato & "# AND CDate(til) >= #" & dato & "#;"

Det forudsætter så at du gemmer både til og fra dato selv hvis det er samme dag.
Avatar billede sorenmt84 Juniormester
10. december 2002 - 13:45 #9
Jeg får følgende fejl:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0400)
En sætning var ventet
/kalender_vaelg.asp, line 79


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

79:
dato2 = intYear & "-" & Month(dtmCurDate) & "-" & Day(dtmCurDate)
"SELECT * FROM kalender WHERE CDate(fra) <= #" & dato2 & "# AND CDate(til) >= #" & dato2 & "#;"

Side:
GET /kalender_vaelg.asp

Klokkeslæt:
10. december 2002, 13:42:26


Yderligere oplysninger:
Microsoft Support
Avatar billede eagleeye Praktikant
10. december 2002 - 16:40 #10
Hov jeg har glemt at skrive strSQL = foran selve SQL sætningen.:


strSQL = "SELECT * FROM kalender WHERE CDate(fra) <= #" & dato2 & "# AND CDate(til) >= #" & dato2 & "#;"
Avatar billede sorenmt84 Juniormester
10. december 2002 - 17:32 #11
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Ugyldig anvendelse af null
/kalender_vaelg.asp, line 80

80:
Set rs_info = Conn.Execute(strSQL)
Avatar billede eagleeye Praktikant
10. december 2002 - 17:35 #12
Er til udfyldt hvis det er et en dags event?
Avatar billede sorenmt84 Juniormester
10. december 2002 - 17:41 #13
Normal udfylder kun til feltet hvis det er over flere dage... Men jeg prøvede at udfylde til feltet for den mdr kalender åbner med... Er det ikke nok?
Avatar billede eagleeye Praktikant
10. december 2002 - 17:49 #14
Jo det tror jeg bare ikke er nok ..men jeg er ikke helt sikker...

Eller så prøv at tilføgje et tjek på om til er null sådan her:


SELECT kalender.[fra]
FROM kalender
WHERE CDate(fra) = #12-10-2002# OR (CDate(fra) <= #12-10-2002# AND til is not null and CDate(til) >= #12-10-2002#);

strSQL = "SELECT * FROM kalender WHERE CDate(fra) = #" & dato2 & "# OR (CDate(fra) <= #" & dato2 & "# AND til is not null and CDate(til) >= #" & dato2 & "#);"
Avatar billede sorenmt84 Juniormester
10. december 2002 - 18:51 #15
'Case' var ventet

Fejl i 78:
SELECT kalender.[fra]
Avatar billede eagleeye Praktikant
10. december 2002 - 19:21 #16
hov det var kun den nederste der skulle med det gik vist lidt for hurtigt inden maden :)


strSQL = "SELECT * FROM kalender WHERE CDate(fra) = #" & dato2 & "# OR (CDate(fra) <= #" & dato2 & "# AND til is not null and CDate(til) >= #" & dato2 & "#);"
Avatar billede sorenmt84 Juniormester
10. december 2002 - 20:27 #17
Det virker... Takker :-)
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