1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Erro em comparação ( IF THEN ELSE)

Discussão em 'Programação' iniciada por douradex, 25 de Setembro de 2006. (Respostas: 1; Visualizações: 565)

  1. douradex

    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
     
  2. douradex

    douradex Power Member

    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.
     

Partilhar esta Página