webForumDet fria alternativet

Kalender script

4 svar · 735 visningar · startad av Organick

OrganickMedlem sedan okt. 200120 inlägg
#1

Mit kalender script driller mig lidt. Kalenderen er oprindeligt fra gruvsjo, og den driller mig når jeg skal ha vist info til et fremtidig dato. Det viser sig at hvis datoen er over den 12 (eks. 13-08-2006) så hiver den ud af databasen. Men hvis det f.eks er den 9-8-2006 så kan den ikke finde ud af at vise det bestemte udtræk.

Jeg vedhæfter koden. Håper nogen kan hjælpe mig.

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/kalender.mdb")

If Request.Querystring("datum") = "" Then
datum = Date()
Else
datum = Request.Querystring("datum")
End If

Set RecSet = Conn.Execute("Select * From Mess Where Datum=#" & datum & "#" & " Order By tid")%>
<table cellpadding="1" cellspacing="2" width="520" border="0" align="center">
<tr>
<td height="20"></td>
</tr>
<tr>
<td height="18" class="calendar_yvirskrift">Enme den, <%If datum = Date() Then%>idag<%End If%> <%=Day(datum)%>-<%=Month(datum)%> - <%=Year(datum)%>:</td>
</tr>
<tr>
<td height="20"></td>
</tr>
</table>

<%If RecSet.EOF Then%>
<table cellpadding="1" cellspacing="2" width="520" border="0" align="center">
<tr>
<td class="calendar_fragreiding"><%=datum%> Intet emne til denne dag</td>
</tr>
<%Else%>
<table cellpadding="1" cellspacing="2" width="520" border="0" align="center">
<tr>
<td class="calendar_yvirskrift2">kl. <%=FormatDateTime(RecSet("tid"),4)%>   <%= RecSet("Rubrik") %></td>
</tr>
<tr>
<td class="calendar_fragreiding"><strong>Info:</strong><br><br>
<%Do until RecSet.EOF%>
<%=Replace(RecSet("Mess"), vbCrLf, "<br>" )%></td>
</tr>
<%RecSet.MoveNext
Loop
End If%>
<tr>
<td height="20" colspan="3"></td>
</tr>
</table>

@ndersMedlem sedan juni 200032 969 inlägg
#2

Det verkar som att det är fel datatyp på datumfältet i tabellen Mess.
Annars kan du prova att lägga på CDate() runt RecSet("tid") när du använder den i FormatDateTime().

Jag hade nog försökt hitta något annat script dock...

Slutligen; snälla, använd [kod]-taggar runt kod, så blir det lättare att läsa.

Mvh

CatZMedlem sedan jan. 20022 440 inlägg
#3

och slutligen... intendenten ;)

OrganickMedlem sedan okt. 200120 inlägg
#4

Løst og har et andet spørgsmål

Undskyld at jeg ikke brugte [kod]-taggar runt kod. :e

Jeg fik det til at virke, ved at sætte dette ind i toppen.

Function USdato(dato) 
USdato = "" & Month(dato)&"/"&day(dato)&"/"&year(dato) & ""
end function

Og ændrede dette

Set RecSet = Conn.Execute("Select * From Mess Where Datum=#" & USdato(datum) & "#" & " Order By tid")

Men nu har jeg et andet problem. Det er at kalenderen ikke viser event, f.eks hvis jeg har oprettet noget til 15. aug. så bliver det ikke vist. Kan nogen sige mig hvorfor? Det er vist også noget med at formatere datoen. Fordi at den virker fint hvis jeg bruger Session.LCID 1053 YYYY-MM-DD men virker ikke hvis jeg bruger Session.LCID = 1030 DD-MM-YYYY

<%Response.Buffer = True
Session.LCID = 1030

dim datum, nu, sajten, ar, manad, dag, sd, sn, conn, dagens, i, fontcolor

db = Server.MapPath("db/kalender.mdb")
sajten = "kalendarin1.asp"

datum = Date()
nu = Date()

If Request.QueryString("date") = "" Then
    nu = date()
Else
    nu = Request.QueryString("date")
End If

dag = DatePart("d", nu, 2, 0)
manad = DatePart("m", nu, 2, 0)
ar  = DatePart("yyyy", nu, 2, 0)

sd = DateSerial(ar, manad, 1)
sn = DatePart("w", sd, 2, 0)%>

<%

If manad = 1 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "Januar"
End If

If manad = 2 Then
	endD = DateSerial(ar, manad, 29)
	omFelmon = DatePart("m", endD, 2, 0)
	manaden = "Februar"
		
	If omFelmon = manad Then
		endD = DateSerial(ar, manad, 29)
		dagar = 29
	Else
		endD = DateSerial(ar, manad, 28)
		dagar = 28
	End If
End If

If manad = 3 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "Mars"
End If

If manad = 4 Then
   endD = DateSerial(ar, manad, 30)
   dagar = 30
   manaden = "April"
End If

If manad = 5 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "Maj"
End If

If manad = 6 Then
   endD = DateSerial(ar, manad, 30)
   dagar = 30
   manaden = "Juni"
End If

If manad = 7 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "Juli"
End If

If manad = 8 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "August"
End If

If manad = 9 Then
   endD = DateSerial(ar, manad, 30)
   dagar = 30
   manaden = "September"
End If

If manad = 10 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "Oktober"
End If

If manad = 11 Then
   endD = DateSerial(ar, manad, 30)
   dagar = 30
   manaden = "November"
End If

If manad = 12 Then
   endD = DateSerial(ar, manad, 31)
   dagar = 31
   manaden = "December"
End If%>

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/kalender.mdb")

Set RS = Conn.Execute("Select * From Mess Where manad=" & manad & "")%>

<table width="189" border="0" cellspacing="1" cellpadding="0" class="calendar_borders">
  <tr class="calendar_days">
     <td width="27" align="center" valign="middle" class="calendar_weekday">Ma</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday">Ti</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday">On</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday">To</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday">Fr</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday">Lø</td>
     <td width="27" align="center" valign="middle" class="calendar_weekday"><font color="#D91D1D">Sø</font></td>
  </tr>

<%Dag = 1
dagens = sd%>
<%
For a = 1 to 7%>
<tr bgcolor="ffffff">
<%For i = 1 to 7

If i = 7 Then
   fontcolor = "#D91D1D"
Else 
   fontcolor = "#000000"
End If

If Int(Dag) = Int(dagar)+1 Then%>
  <td width="27" valign="middle" class="calendar_days">&nbsp;</td>
<%Else
   If i >= sn Then
      If dagens = datum Then
         RS.Filter = "datum = #" & dagens & "#"
            If RS.EOF Then%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#9e9e9e" title="Idag">
                  <font color="<%=fontColor%>"><%=Dag%></font>
               <%Else

                  If RS("datum") < date() Then%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#9e9e9e" title="Idag">
                    <font color="<%=fontColor%>"><%=Dag%></font>
                  <%Else
                  If Request.QueryString("date") <> "" Then%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#9e9e9e" title="Idag">
                     <font color="<%=fontColor%>"><a href="<%=sajten%>?date=<%=Request.QueryString("date")%>&datum=<%=dagens%>"><%=Dag%></a></font>
                  <%Else%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#9e9e9e" title="Ídag">
                     <font color="<%=fontColor%>"><a href="<%=sajten%>?datum=<%=dagens%>"><%=Dag%></a></font>
                  <%End If
                 End If
               End If%>
            </td>
    <%Else
         RS.Filter = "datum = #" & dagens & "#"
            If RS.EOF Then%>
               <td width="27" align="center" valign="middle" class="calendar_days">
                  <font color="<%=fontColor%>"><%=Dag%></font>
               </td>
            <%Else%>

                  <%If RS("datum") < date() Then%>
               <td width="27" align="center" valign="middle" class="calendar_days">
                    <font color="<%=fontColor%>"><%=Dag%></font>
                  <%Else%>
                  <%If Request.QueryString("date") <> "" Then%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#dcdcdc">
                     <font color="<%=fontColor%>"><a href="<%=sajten%>?date=<%=Request.QueryString("date")%>&datum=<%=dagens%>"><%=Dag%></a></font>
                  <%Else%>
               <td width="27" align="center" valign="middle" class="calendar_days" bgcolor="#dcdcdc">
                     <font color="<%=fontColor%>"><a href="<%=sajten%>?datum=<%=dagens%>"><%=Dag%></a></font>
                  <%End If
                 End If%>
               </td>
            <%End If
      End If
   Dag = Dag + 1
   dagens = DateAdd("d", 1, dagens)
   Else%>
      <td width="27" valign="middle">&nbsp;</td>
   <%End If
End If
	
Next
sn = 1%>

<%If Int(Dag) = Int(dagar)+1 Then
   Exit For
End If

Next%>
</table>

<table width="189" border="0" cellspacing="0" cellpadding="1" class="calendar_month" align="center">
<tr>
    <td align="left" width="40"><b><a href="<%=sajten%>?date=<%=DateAdd("m", -1, sd)%>">«</a></b></td>
    <td align="center"><b><%=manaden%>&nbsp;<%=ar%></b></td>
    <td align="right" width="40"><b><a href="<%=sajten%>?date=<%=DateAdd("m", 1, sd)%>">»</a></b></td>
</tr>
</table>
CatZMedlem sedan jan. 20022 440 inlägg
#5

Jag skulle gissa på att det beror på att du har en typ av datum (svensk/norsk/dansk) i databasen och en typ av datum i asp-applikationen.

Om du converterar alla dina värden innan du jämför tex

(CDate(rs("datum") > CDate(date)))

Själv försöker jag alltid få alla datum att se ut som såhär: 19-Jul-2006 blir lättare att jämföra då. Jag befinner mig i australien och där ser allt ut såhär 3/1/2006

Gissa om det blir fel ibland då!!

136 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)