sigo con problemas con el sistema reservas

roberto
10 de Noviembre del 2005
Muy buenas. A ver, creo que me estoy liando con el tema de las
reservas y las consultas. Os planteo todo lo que tengo hasta ahora,
por si vosotros creis que existe otra forma mejor de hacerlo. El
tema es el siguiente.:

Tengo una base de datos, llamada `reservas.mdb' con cuatro tablas. La
tabla `Reservas', la tabla `Dias', la tabla `Meses' y la
tabla `Anualidad'. Cada una de estas tablas tiene los siguientes
campos:
Tabla Dias:
Campo IDDia---Autonumrico
Campo diaRecoge los 31 dias de un mes (1, 2, 3, , 31)

Tabla Meses:
Campo IDMesAutonumrico
Campo Mes---Recoge los 12 meses del ao, del 1 al 12.(los recoge en
nmeros)

Tabla Anualidad:
Campo IDAnualidadAutonmerico
Campo AnualidadRecoge los aos. Yo he puesto hasta el 2010
(2005,2006,2007,2008,2009,2010)

Tabla Reservas:
Campo IDReservasAutonumrico
Campo DiaEntradaRecoge el valor del dia de entrada en la habitacin
Campo MesEntrada-- Recoge el valor del mes de entrada en la habitacin
Campo AnualidadEntrada-- Recoge el valor del ao de entrada en la
habitacin
Campo DiaSalida-- Recoge el valor del dia de salida en la habitacin
Campo MesSalida-- Recoge el valor del mes de salida en la habitacin
Campo AnualidadSalida-- Recoge el valor del ao de salida en la
habitacin


A su vez, tengo un formulario para comprobar si existe disponibilidad
de la habitacin en una determinada fecha o no. Si estuviera
disponible, esa fecha en la que est interesado el visitante la
incorpora a la base de datos y esa habitacin ya est reservada. En
caso de que esa fecha no estuviera disponible, manda el mensaje de
habitacin no disponible.

As pues, mis pginas son las siguientes:

Pgina formulario.asp

<TABLE cellSpacing=0 cellPadding=0 border=0 align="center">
<TBODY>
<TR>
<TD class="text2">&nbsp;</TD></TR>
<!-- tabla de consulta -->
<table cellpadding=4 cellspacing=2 border=0 bgcolor="#c6d2e2">
<tr>
<td colspan="2" class="style4"><b>Prueba del Mdulo de Reservas
Online</b></td>
</tr>
<form method=post name="NuevoEnlace" action="adact.asp"
onSubmit="return Chequear();" onReset="return Limpiar();">
<tr bgcolor="#FFFFFF">
<td class="txt4">Del</td>
<TD class="txt4">

<%
Dim conn, ConnectString, rsdia

ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Dias.* FROM Dias ORDER BY dia ASC"
Set rsdia = Server.CreateObject("ADODB.Recordset")
rsdia.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="DiaEntrada" class="txt6">
<option value="">Dia
<option value="">-----
<%if not rsdia.EOF then
rsdia.Movefirst
do until rsdia.EOF
%> <option value="<%=rsdia("dia")%>"><%=rsdia("dia")%></option>
<% rsdia.Movenext
loop
rsdia.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD>
<TD class="txt4">

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Meses.* FROM Meses"
Set rsmes = Server.CreateObject("ADODB.Recordset")
rsmes.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="MesEntrada" class="mes">
<option value="">Mes
<option value="">-------------------
<%if not rsmes.EOF then
rsmes.Movefirst
do until rsmes.EOF
%> <option value="<%=rsmes("mes")%>"><%=rsmes("mes")%></option>
<% rsmes.Movenext
loop
rsmes.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD>
<TD class="txt4">

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Anualidad.* FROM Anualidad ORDER BY Anualidad ASC"
Set rsanualidad = Server.CreateObject("ADODB.Recordset")
rsanualidad.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="AnualidadEntrada" class="mes">
<option value="">Ao
<option value="">-------------------
<%if not rsanualidad.EOF then
rsanualidad.Movefirst
do until rsanualidad.EOF
%> <option value="<%=rsanualidad("Anualidad")%>"><%=rsanualidad
("Anualidad")%></option>
<% rsanualidad.Movenext
loop
rsanualidad.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD></tr>
<tr bgcolor="#FFFFFF">
<td class="txt4">Al</td>
<TD class="txt4">

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Dias.* FROM Dias ORDER BY dia ASC"
Set rsdia = Server.CreateObject("ADODB.Recordset")
rsdia.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="DiaSalida" class="txt6">
<option value="">Dia
<option value="">-------------------
<%if not rsdia.EOF then
rsdia.Movefirst
do until rsdia.EOF
%> <option value="<%=rsdia("dia")%>"><%=rsdia("dia")%></option>
<% rsdia.Movenext
loop
rsdia.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD>
<TD class="txt4">

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Meses.* FROM Meses"
Set rsmes = Server.CreateObject("ADODB.Recordset")
rsmes.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="MesSalida" class="mes">
<option value="">Mes
<option value="">-------------------
<%if not rsmes.EOF then
rsmes.Movefirst
do until rsmes.EOF
%> <option value="<%=rsmes("mes")%>"><%=rsmes("mes")%></option>
<% rsmes.Movenext
loop
rsmes.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD>
<TD class="txt4">

<%
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.Mappath("reservas.mdb") & ";Persist Security Info=False"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
<%
sql = "SELECT Anualidad.* FROM Anualidad ORDER BY Anualidad ASC"
Set rsanualidad = Server.CreateObject("ADODB.Recordset")
rsanualidad.Open sql, conn, 3, 3
%>
<table>
<tr>
<TD class="txt4">
<select name="AnualidadSalida" class="mes">
<option value="">Ao
<option value="">-------------------
<%if not rsanualidad.EOF then
rsanualidad.Movefirst
do until rsanualidad.EOF
%> <option value="<%=rsanualidad("Anualidad")%>"><%=rsanualidad
("Anualidad")%></option>
<% rsanualidad.Movenext
loop
rsanualidad.Movefirst
end if
%></select>

</td></tr></table></DIV>
</TD></tr>




<tr bgcolor="#FFFFFF">
<style>
.inputSubmit
{
color: #9EA7B4;
background-color: #FFFFFF;
border-color : #000000;
border-top : 1px solid;
border-bottom : 1px solid;
border-left : 1px solid;
border-right : 1px solid;
font-family : Verdana,tahoma,Arial;
font-size : 10px;
font-weight: bold;
}
</style>
<td colspan=2>
<DIV ALIGN="center"> <input type="submit" value="Aceptar"
class="inputSubmit"> <input type="reset" value="Limpiar Formulario"
class="inputSubmit">
</DIV> </td>
</tr>
</table></DIV>

















Pgina adact.asp

<%
dim Diaentrada, Mesentrada, Anualidadentrada, Diasalida, Messalida,
Anualidadsalida

DiaEntrada = Request.Form("DiaEntrada")
MesEntrada = Request.Form("MesEntrada")
AnualidadEntrada = Request.Form("AnualidadEntrada")
DiaSalida = Request.Form("DiaSalida")
MesSalida = Request.Form("MesSalida")
AnualidadSalida = Request.Form("AnualidadSalida")
dim cnn,rsreservas
' Creamos la conexin a la base de datos sin DSN
set cnn = Server.CreateObject("ADODB.Connection")
set rsreservas = Server.CreateObject("ADODB.RecordSet")
cnn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("reservas.mdb"))
sqltext = "SELECT * FROM Reservas where (DiaEntrada
between "&DiaEntrada&" and "&DiaSalida&") and (DiaSalida
between "&DiaEntrada&" and "&DiaSalida&")"
rsreservas.Open sqltext,cnn,3,3
if not rsreservas.EOF then
%>
habitacin no disponible
<%
else
%>
habitacion disponible
<%
end if%>
--------------
bien. Aqu es donde me encuentro con los problemas. En este archivo
adact.asp, hago una consulta a la base de datos reservas indicndoles
que si la fecha de entrada o de salida que introducen est
comprendida entre las fechas de entradas o salidas que hay en la base
de datos, me de el mensaje de HABITACIN NO DISPONIBLE, y en caso
contrario, que de el mensaje de HABITACIN DISPONIBLE. hasta ah
correcto. el problema es que no s como meter que no slo sea el da,
sino que sea tambin el mes y el ao. es decir, ahora mismo con lo
que tengo, si meto 01/01/2005 al 03/01/2005, y en la base de datos
est reservada del 01/01/2005 al 02/01/2005, me da el mensaje de
HABITACIN NO DISPONIBLE. pero si meto del 01/02/2005 al 03/02/2005,
tambin me da HABITACIN NO DISPONIBLE, pues obviamente yo no estoy
considerando en la consulta el mes ni el ao. como puedo hacer esto?
no s si me explico o si lo estoy orientando bien. gracias por
vuestra ayuda.