webForumDet fria alternativet

Checka med db om datum existerar

ASP

3 svar · 170 visningar · startad av Lazerzubb

Medlem sedan mars 2000542 inlägg
Frågan#1

Hittade en kalender på aspsidan sent igår kväll, och modifierade koden lite, så istället
för att använda 3 separate kolumner använder jag bara ett datum fält (Access)

Men jag vet inte hur jag ska ändra denna kod för att det ska funka.

I databasen existerar bara ID och datum (vilket är ett DATE field, 02/07/2003 etc)
Jag vet inte hur jag byter ut den tidigare checken för dd (dag) mm (måndad) yyyy (år) till att checka med "datum"
(Är det bäst och använda 3 separata kolumner eller ska jag bara använda 1?)

Tack på förhand.

<%
Function getMonth(monthNr)

	Select Case monthNr
		Case 1 manad = "Januari"
		Case 2 manad = "Februari"
		Case 3 manad = "Mars"
		Case 4 manad = "April"
		Case 5 manad = "Maj"
		Case 6 manad = "Juni"
		Case 7 manad = "Juli"
		Case 8 manad = "Augusti"
		Case 9 manad = "September"
		Case 10 manad = "Oktober"
		Case 11 manad = "November"
		Case 12	manad = "December"
	End Select
	
	getMonth = manad
	
End Function

Function getDays(monthNr)

	Select Case monthNr
		Case 1 days = 31
		Case 2 days = 28
		Case 3 days = 31
		Case 4 days = 30
		Case 5 days = 31
		Case 6 days = 30
		Case 7 days = 31
		Case 8 days = 31
		Case 9 days = 30
		Case 10 days = 31
		Case 11 days = 30
		Case 12	days = 31
	End Select
	
	getDays = days
	
End Function

Function getNext(s)
' s = sign (eg +,-)
' am = aktuell månad
' ay = aktuellt år
	
	If s = "+" Then
		If mm = 12 Then
			am = 1
			ay = yyyy + 1
		Else
			am = mm + 1
			ay = yyyy
		End If
	Else
		If mm = 1 Then
			am = 12
			ay = yyyy - 1
		Else
			am = mm - 1
			ay = yyyy
		End If
	End if
	
	getNext = am & "&y=" & ay
	
End Function

' Plocka fram aktuellt datum
datum	= Date
aManad 	= Month(datum)
aDag	= Day(datum)
aAr		= Year(datum)

' Vilken månad skall visas?
If Request.QueryString("m") <> "" Then
	mm 		= Request.QueryString("m")
	yyyy 	= Request.QueryString("y")
Else
	mm 		= Month(datum)
	yyyy 	= Year(datum)
End If

' Hur många rutor skall skippas första veckan?
skip 	=  DatePart("w", mm & "/1-"&yyyy, vbMonday) - 1

%>

<SCRIPT LANGUAGE="javascript">
<!--
function popup(url,width,height)
{
	unik=new Date();
	unik=unik.getSeconds()+"_"+unik.getMinutes()+"_"+unik.getHours();
	stuff = "toolbar=no,menubar=no,scrollbars=yes,resizable=no,width= " +width + ", height = " +height
	window.open(url , unik , stuff );
}
//-->
</SCRIPT>

Och

        <%
		set Rs = Server.CreateObject("ADODB.Recordset") 
		RS.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/kalender.mdb" 
		RS.Source = "Select DISTINCT(dd) From handelser Where mm = " & mm & " And yyyy = " & yyyy & " Order By dd"
		RS.Open()

		dag = 1 - skip 
		x = 0 
		Do Until x > (getDays(mm) + skip) / 7 

			Response.Write "<tr>" 

			For y = 1 To 7 

				bgColor = "#FFFFFF" 
				If not RS.EOF Then 
					If int(dag) = int(RS("dd")) Then 
						bgColor = "#D3F1F7" 
						skriv = "true"
						
						'RS.MoveNext 
					End If 
				End If
				
				If aDag&aManad&aAr = dag&mm&yyyy Then
					bgColor = "#4682B4"
				End If

				If dag > 0 AND dag < getDays(mm)+1 Then 
					borderColor = "#4682B4" 
				Else 
					borderColor = "#FFFFFF" 
				End If 

				Response.Write "<td width='25'>" 
				Response.Write "<table width = '100%' border='0' cellspacing='0' cellpadding='1' bgcolor='" &borderColor &"'>"_ 
						& "<tr><td>" 
				Response.Write "<table width = '100%' border='0' cellspacing='0' cellpadding='1' bgcolor='" & bgColor & "'>"_ 
						& "<tr><td>" 

				Response.Write "<div align='center'><font size='1' face='Verdana, Arial, Helvetica, sans-serif'>" 

				If dag > 0 And dag < getDays(mm)+1 Then 
					If skriv = "true" Then
						Response.Write "" & dag & ""
						RS.MoveNext
						skriv = "false"
					Else
						Response.Write dag
					End if
				End If 

				Response.Write "</font></div></td></tr></table></td></tr></table></td>" 

				dag = dag + 1 

			Next 
			Response.Write "</tr>" 

			x = x + 1 
		Loop 

		RS.Close() 
		%>
        <tr bgcolor="#CCCCCC"> 
          <td width="25" bgcolor="#CCCCCC"> 
            <div align="center"><a href="<%=sidan%>?m=<%=getNext("-")%>"><img src="left.gif" width="15" height="10" border="0"></a></div>
          </td>
          <td colspan="5"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
              <%Response.Write "<b>" & getMonth(mm) & " (" & yyyy & ")</b>"%>
              </font></div>
          </td>
          <td width="25"> 
            <div align="center"><a href="<%=sidan%>?m=<%=getNext("+")%>"><img src="right.gif" width="15" height="10" border="0"></a></div>
Medlem sedan mars 2000542 inlägg
#2

Går det att göra?

Medlem sedan dec. 20003 887 inlägg
#3

hmmm... du kanske ska ta och titta lite närmare på funktionerna FormatDateTime(), CDate(), Day(), Month() och Year()

Och, höll på att glömma, DateAdd().

Jag kollade inte igenom din kod något, eftersom jag tyckte det var massa onödigheter i den. Hursomhelst, kolla igenom dessa funktioner, så inser du snabbt att det räcker alldeles utmärkt med en kolumn.

Medlem sedan mars 2000542 inlägg
#4

Tack för länkarna, problemet är inte längre hur jag sparar datumet, utan hur jag jämför datumen som visas i kalendern med datumen i databasen, det görs med koden ovan, men då existerar 3 kolumner, nu bara en kolumn, vilket är en "date" kolumn.
Så om datum som visas finns i databasen, bakgrunder ändras till en annan färg, vilket gör redan i ovanstående kod (Men fortfarande används 3 kolumner och jag vill bara använda en)

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)