Foros del Web » Programando para Internet » ASP Clásico »

Farmacia de guardia

Estas en el tema de Farmacia de guardia en el foro de ASP Clásico en Foros del Web. Buenos días compys! Tengo un portal de un municipio y me gustaría incluir un servicio en el cual se pudiera visualizar que farmacia esta de ...
  #1 (permalink)  
Antiguo 17/01/2008, 05:37
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Farmacia de guardia

Buenos días compys!

Tengo un portal de un municipio y me gustaría incluir un servicio en el cual se pudiera visualizar que farmacia esta de guardia...

He estado pensando en la manera de hacerlo y de momento es la de cojer una farmacia de la BD y copiar todos los días que esta abierta en la tabla y después hacer una comparación en la tabla búscando la fecha de hoy que farmacia hay abierta.. (Eso creo que es un hierro y implica llenar la tabla de demasiados datos)

Access:
Tablas:
[Farmacias]
Id | Nombre | Dirección | Código_postal | Población | Provincia | Tel

1 | Farmacia | Calle, 0 | 00000 | Pueblo | Provincia | 900000000
2 | Farmacia2 | Calle, 0 | 00000 | Pueblo | Provincia | 900000000

[Guardias]
Fecha | Id_farmacia
17/01/2008 | 1
18/01/2008 | 1
19/01/2008 | 1
20/01/2008 | 1
21/01/2008 | 1
22/01/2008 | 1
23/01/2008 | 2
24/01/2008 | 2
25/01/2008 | 2
etc...

ASP:
Consultamos en la tabla guardia que Id_farmacia coincide con la fecha de hoy, y luego hacemos otra consulta en la tabla farmacias, buscamos que Id_farmacia coincide con la id de la tabla, y después pintamos los datos de dicha farmacia en la web.

¿Alguien sabe otra forma de hacer esto?
  #2 (permalink)  
Antiguo 17/01/2008, 08:08
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Farmacia de guardia

lo que podrias hacer es por cada dia poner todo los id de las farmacias

ejemplo
[Guardias]
Fecha | Id_farmacias
17/01/2008 | 1,2,3,4,5,6,7
18/01/2008 | 1,2,3,4
19/01/2008 | 5,6,7,8,9,10

luego en tu sql haces un RS en donde traerias rs("farmacias")

sql = select * from farmacias where id in('"rs("farmacias")"')


suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 17/01/2008, 10:35
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

Gracias por contestar ;D

Lo que no busco exactamente eso, lo que quiero es no tener que definir todos los días del año...
Sino los cambios es decir:
si la "farmacia 1" empezó a estar de guardia el día 14/01/2008 y no acaba hasta el día 20/01/2008, que al día siguiente 21/01/2008 es la fecha que empieza a estar de guardia la "farmacia 2" yo quisiera definir la fecha de inicio de guardia de cada Farmacia y así se sabe que farmacia esta de guardia... lo que nose cómo hacer la consulta a la BD.. para buscar la farmacia...

Saludos y gracias!
  #4 (permalink)  
Antiguo 17/01/2008, 13:43
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Farmacia de guardia

oki, dejame ver si te entendi

la farmacia de guardia pasa X dias de turno?

entonces si es asi, porqeu no haces esto:


Farmacias]
Id | Nombre | Dirección | Código_postal | Población | Provincia | Tel | FechaInicio | fechaFinal

1 | Farmacia | Calle, 0 | 00000 | Pueblo | Provincia | 900000000 | 14/01/2008 | 20/01/2008
2 | Farmacia2 | Calle, 0 | 00000 | Pueblo | Provincia | 900000000 | 21/01/2008 | 27/01/2008

lueto en tu asp haces

Cita:
hoy = date()
'ojo te retrae la info fecha de el server

'tu demas codigo
sql = ""select * from farmacias where FechaInicia = > '"& hoy &"' and FechaFinal < = '"& hoy &"'

la parte '"& hoy &"' depende de la base que esas usando porque access lleva ## y esas cosas

dinos que base es y veremos si seguimos ayudandiote

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 18/01/2008, 04:25
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

Ahora ya empiezo a ver un sistema más claro, pero vamos a mirar de rizar aún más el rizo ;) jejeje

Resulta que las farmacias hacen un bucle infinito cada 7 días cambian...

Ejemplo:
01/10/2007 al 07/10/2007 Farmacia 1
08/10/2007 al 14/10/2007 Farmacia 2
15/10/2007 al 21/10/2007 Farmacia 3
22/10/2007 al 28/10/2007 Farmacia 4
29/10/2007 al 04/11/2007 Farmacia 5
05/11/2007 al 11/11/2007 Farmacia 6
12/10/2007 al 18/11/2007 Farmacia 7

19/11/2007 al 25/11/2007 Farmacia 1
26/11/2007 al 02/12/2007 Farmacia 2
03/12/2007 al 09/12/2007 Farmacia 3
10/12/2007 al 16/12/2007 Farmacia 4
17/12/2007 al 23/12/2007 Farmacia 5
24/12/2007 al 30/12/2007 Farmacia 6
31/12/2007 al 06/01/2008 Farmacia 7

Nose si estableciendo una fecha de inicio de la "Farmacia 1" en este año 2008 [07/01/2008] y transcurridos 6 días de la misma, almacenar la siguiente fecha y saltar a la "Farmacia 2" así hata formar el bucle de las 7 Farmacias... ¿Como lo veís?

Saludos y mil gracias por vuestro tiempo!
  #6 (permalink)  
Antiguo 18/01/2008, 07:52
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Farmacia de guardia

pus ahi la decision es tuya
puedes poner solo la fecha de inicio

luego saber q dia es hoy y buscar la fecha que sea = o < al ella y sabras cual farmacia esta de turno

pero ahi tu tienes que definir que te sale mas facil

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 01/02/2008, 09:23
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

Buenas tardes compys!

Una vez más necesito vuestra ayuda.

Código:
<%

Sub Farmacia()

	Dim avui, conexion, rs, sql, idfarmacia

	avui = date()

	Set conexion = Server.CreateObject("ADODB.Connection") 
	conexion.open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mdb-database/bd.mdb"))
	Set RS = Server.CreateObject("ADODB.Recordset")
	sql = "SELECT * FROM farmacies_guardies WHERE data<=#" & avui & "#"
	rs.Open sql, conexion,3,1

	rs.movelast
	idfarmacia = rs.fields("farmacia")

	rs.close

	sql = "SELECT * FROM farmacies WHERE id=" & idfarmacia & ""
	rs.Open sql, conexion,3,1

	Response.Write ("<b>" & rs.fields("nom") & "</b><br>") 
	Response.Write ("" & rs.fields("direccio") & "<br>")
	Response.Write ("" & rs.fields("postal") & " " & rs.fields("poblacio") & "<br>")
	Response.Write ("" & rs.fields("tel") & "")

	rs.close
	Conexion.close

End Sub

%>
Este código lleva funcionando todo el mes de Enero sin problemas, cada cambio de farmacia se ha ido actualizando correctamente.
Hasta que hemos cambiado de mes es decir que hemos entrado en Febrero y ya me ha dado el siguiente error:
ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

¿Alguien me puede echar una mano en solucionarlo?

Saludos y gracias!
  #8 (permalink)  
Antiguo 01/02/2008, 10:00
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 4 meses
Puntos: 606
Re: Farmacia de guardia

Por casulidad, el fallo viene en la segunda consulta?
  #9 (permalink)  
Antiguo 01/02/2008, 11:19
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

Falla la línea 15

La primera consulta...
  #10 (permalink)  
Antiguo 02/02/2008, 09:18
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

¿Nadie sabe como solucionarlo?

Saludos y gracias.
  #11 (permalink)  
Antiguo 04/02/2008, 01:38
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

El tema se ha solucionado solo... ha sido saltar a la farmacia que esta de guardia esta semana y volver a funcionar...

¿Alguien me puede explicar a que es debido?

Saludos y gracias!
  #12 (permalink)  
Antiguo 04/02/2008, 02:32
 
Fecha de Ingreso: abril-2007
Mensajes: 85
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Farmacia de guardia

Solucionado!

El error lo tenia en la consulta, ya que yo consultaba a Access una fecha así dd/mm/aaaa y hay que hacerlo así mm/dd/aaaa.

Código:
ara = Now()

avui = Month(ara) & "/" & Day(ara) & "/" & Year(ara)
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:18.