Erro em comparação ( IF THEN ELSE)

douradex

Power Member
o programa deverá servir para registar reservas de autocarros.
Os autocarros são 2.
O que se pretende é ter uma variável de controlo ( para dar um erro) para controlar se já existem 2 autocarros ocupados. Ou seja em caso de nova requisição se o ano, mês, dia já está registado numa reserva da base de dados deveremos comparar a hora de partida desejada e a hora de chegada que já existe na base de dados. Em caso de a partida da nova reserva ser antes da chegada da antiga a variável deverá aumentar uma unidade.
Se a variável tiver o valor 2 então deverá ser informado o utilizador de impossibilidade de requisição.
O problema é que os IF's não estão a comparar.
' Criar uma ligação para Base de Dados
Set ligacao = Server.CreateObject("ADODB.Connection")
' Abrir Base de Dados Gestão de Viaturas
ligacao.Open "DSN=gestaoViaturas"

' Criar uma instância para Recorset, assim podemos manipular os dados da Base de Dados
Set recligacao = Server.CreateObject("ADODB.Recordset")


' Serve para controlar quantas reservas existem num dia em autocarros -tipo1 -( 36 lugares )
' Serve para controlar quantas reservas existem num dia na carrinha -tipo2 -( 8 lugares )
tipo1 = 0
tipo2 = 0


' Vamos percorrer a tabela para saber quantas reservas existem no dia pretendido
SQLstmt= "SELECT h_chegada,m_chegada FROM reserva WHERE ((a_data=" & Request.Form("ano") & ") and (m_data=" & Request.Form("mes") & ") and (d_data=" & Request.Form("dia") & "))"

'e abre-la
Set recligacao = ligacao.execute(SQLstmt)
while not recligacao.EOF

If Cint(recligacao.Fields("h_chegada")) > hora_partida then

response.write "Chegou comparação 1 <br>"
if visitantes < 8 then
tipo2 = tipo2 + 1
else
tipo1 = tipo1 + 1
end if
else
If ((Cint(recligacao.Fields("h_chegada")) = hora_partida) and ( Cint(recligacao.Fields("m_chegada")) > minuto_partida)) then
response.write "Chegou comparação 2 <br>"
if visitantes < 8 then
tipo2 = tipo2 + 1
else
tipo1 = tipo1 + 1
end if
end if

end if

'response.write " Hora chegada reserva = " & recligacao.Fields("h_chegada") & "h : " & recligacao.Fields("m_chegada") & "m <br>"
'response.write " Hora partida pedido= " & hora_partida & "h : " & minuto_partida & "m <br>"
recligacao.MoveNext
wend

Se tiverem por aí uma ideia... agradeço.
Sem mais
 
Truque para não haver problemas...

Bem já descobri como resolver o problema.

Na comparação do if para que não houvesse problemas utilizei a conversão Cint em ambos os campos . Deu resultado.

Fica aqui uma questão resolvida que pode dar jeito.
 
Back
Topo