Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/02/2006, 13:36
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Mi primera duda es si has comprobado (con esa sentencia SQL) si te da valores ya que usar el LIKE con fechas y con formato de texto (comillas y %) en Access no es muy buena idea (yo lo he probado y na de na. Claro está que igual no está FECHA como tipo DATE ??¿¿¿)

Tampoco entiendo mucho esto:

Código:
' preparo fecha para conexion a base de datos
if len(imes) = 1 then
xmes = 0&imes
end if
Veo que imes es alfanumerico ya que estas calculando la longitud de una cadena (¿me equivoco?). de todas formas parece que funciona ya que el error te lo hace en el bucle. Aun así comprueba el resultado que suelta ese recordset. Si el campo FECHA es de tipo DATE la sentencia SQL debería ser asi:

sql2 = "SELECT DAY(FECHA) FROM EVENTOS WHERE MONTH(FECHA) = " & xmes & " order by FECHA "

Pero si te funciona bien, no he dicho nada


Veamos esto:

Código:
 'conexion a base de datos
		dim con2,rs2,sql2,xdia
		set con2 = server.CreateObject("ADODB.Connection")
		con2.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\agenda\agenda.mdb;User Id=;Password=;"
		set rs2 = server.CreateObject("ADODB.Recordset")
		sql2 = "SELECT DAY(FECHA) FROM EVENTOS WHERE FECHA LIKE '%/"&xmes&"/%' order by FECHA "
		rs2.open sql2,con2,1,2
		
		rs2.movefirst
		if not rs2.EOF then dayMagico = Cint(day(rs2.Fields("FECHA")))		

'Pintamos el calendario
iActual = 1
iPosicion = iPrimerDiaSemanaMes
do while iActual <= iDiasDelMes
	
		if iPosicion = 1 then
			'Empezamos nueva semana, es decir nueva fila
			Response.Write vbTab & "<TR>" & VbCrLf 
		end if


	if Cint(iActual) = diaMagico then			


		if iActual = iDia then
			
			'Resaltamos la fecha seleccionada
				Response.Write (vbTab & vbTab & "<TD CLASS='diaActual'><B><A HREF='diax.asp?dia="&diaMagico&"'>"& iActual & "</A></B><br></TD>" & vbCrLf)
				rs2.MoveNext
				
		else
				Response.Write (vbTab & vbTab & "<TD ALIGN='CENTER'><A HREF='diax.asp?dia="& diaMagico&"'>" & iActual & "</A><br></TD>" & vbCrLf)
				
		end if
		if not rs2.EOF then 
			rs2.movenext
			diaMagico = day(rs2.Fields("FECHA"))
		end if
	else
		if iActual = iDia then
			
			'Resaltamos la fecha seleccionada
				Response.Write vbTab & vbTab & "<TD CLASS='diaActual'><B>"& iActual & "</B><br></TD>" & vbCrLf
			
		else
				Response.Write vbTab & vbTab & "<TD ALIGN='CENTER'>" & iActual & "<br></TD>" & vbCrLf
		end if
	end if


	
		if iPosicion = 7 then
		'Estamos en domingo, cerramos la semana :)
			Response.Write vbTab & "</TR>" & vbCrLf
			'Pongo iPosicion a cero pq voy a sumarle uno ahorita mismo
			iPosicion = 0
		end if

		'Incrementamos!
		iActual = iActual + 1
		iPosicion = iPosicion + 1
loop
Como puedes ver la mayor diferencia es que evito toparme con el fin de registro (el EOF). Prueba y nos cuentas.



Un saludo