Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Pescador

[Resolvido] Erro de Consulta

Recommended Posts

Bom dia a todos...

Alguém poderia me dar uma luz pra ver pq está dando esse erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'codigo='.

 

/josephine_thales/controle/alterar_hospede_a.asp, line 54

O código fonte é o seguinte:

 

<%
codigo            = request.form("codigo1")
hospede         = Request.Form("hospede")
ddd             = Request.Form("ddd")
telefone        = Request.Form("telefone")
email            = Request.Form("email")
tipo            = Request.Form("tipo")
vl_a_vista        = Request.Form("vl_a_vista")
vl_a_prazo        = Request.Form("vl_a_prazo")
adt                = Request.Form("adt")
chd                = Request.Form("chd")
numero_voo        = Request.Form("numero_voo")
hora_voo        = Request.Form("hora_voo")
hora_voo_saida    = Request.Form("hora_voo_saida")
cia_aerea        = Request.Form("cia_aerea")
obs                = Request.Form("obs")

strsql2="update hospedagem set hospede='" & hospede & "', ddd='" & ddd & "', telefone='" & telefone & "', email='" & email & "', tipo='" & tipo & "', vl_a_vista='" & vl_a_vista &"', vl_a_prazo='" & vl_a_prazo &"', adt='" & adt &"', chd='" & chd &"', numero_voo='" & numero_voo &"', hora_voo='" & hora_voo &"', hora_voo_saida='" & hora_voo_saida &"', cia_aerea='" & cia_aerea &"', obs='" & obs &"' where codigo=" & codigo

set rs2=Conn.execute(strsql2)
%>
<br>
<br>
<br>
<table width="755" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td valign="top">

      <div align="center"><span class="style3">Hospede alterado com sucesso </span></div></td>
  </tr>
</table>
<br>
</BODY>
</HTML>

<%
response.Redirect("hospedagem.asp")
%>

Agradeço antecipadamente a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente código está vazio

 

mas tire a duvida mandando escrever strsql2 na tela e post aqui o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes desta linha

 

set rs2=Conn.execute(strsql2)

ponha

 

response.write(strsql2)
responde.end

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhh ok...

Apareceu o seguinte:

 

update hospedagem set hospede='LUCIANA GUIMARÃES GONÇALVES DE ARRUDA E PAULO HENR', ddd='92', telefone='9115-9504', email='xxxxx@hotmail.com', tipo='', vl_a_vista='', vl_a_prazo='390', adt='01', chd='00', numero_voo='1705', hora_voo='08:35', hora_voo_saida='18:00', cia_aerea='Gol', obs='Corrigindo a solicitaçao de reserva anterior que f' where codigo=

 

Microsoft VBScript runtime error '800a01a8'

 

Object required: ''

 

/josephine_thales/controle/alterar_hospede_a.asp, line 55

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que o codigo é um campo numerico e está vazio.

 

Assim que o codigo receber o conteúdo, faço:

If (Not isNumeric(codigo)) Then
   codigo = 0
End If
Sobre o outro erro, poste o que está na linha 55.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom conforme podemos ver o codigo está vindo vazio

 

tem certeza que o nome do campo do formulario é codigo1?

 

codigo            = request.form("codigo1")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloquei o meu email pessoal nesse campo e continua dando a mesma msg...

 

Tenho, pois esse código eu peguei de um outro formulário que tenho:

 

numero            = request.form("numero1")

Só que neste caso é "numero", pois no banco de dados e a chave primária dessa tabela e neste caso é "codigo"

Compartilhar este post


Link para o post
Compartilhar em outros sites

E-mail pessoal? Código não é um campo numerico?

 

Qual o tipo de dados em código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No banco de dados está como "numeração automática"...

 

A página anterior que leva a essa é a seguinte:

 

<%
dim ID, strsql2, rs2
codigo1=request.querystring("codigo1")
strsql2="select * from hospedagem where codigo=" & codigo1
set rs2=Conn.execute(strsql2)
codigo1=rs2("codigo")
%>
        </div>
        <form method="post" action="alterar_hospede_a.asp">
<br>
<table width="605" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr bgcolor="#FF9999"> 
              <td colspan="3" bgcolor="#A6C4E1" class="style8"> Dados do Hospede</td>
            </tr>
            <tr>
              <td colspan="3" class="style1"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr> 
              <td width="22%" class="style8"><div align="right">Numero:</div></td>
              <td colspan="2" class="style3"> <%=rs2("codigo")%></td>
            </tr>
            <tr>
              <td colspan="3" class="style1"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr> 
              <td width="22%" class="style8"><div align="right">Nome:</div></td>
              <td colspan="2"> <input name="hospede" type="text" class="fct1" id="hospede" value="<%=rs2("hospede")%>" size="50" maxlength="100"></td>
            </tr>
            <tr>
              <td width="22%" class="style8"><div align="right">E-mail:</div></td> 
              <td colspan="2" valign="top"> <input name="email" type="text" class="fct1" id="email" value="<%=rs2("email")%>" size="50" maxlength="255"></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Telefone:</div></td>
              <td colspan="2" valign="top"> <input name="ddd" type="text" class="fct1" id="ddd" value="<%=rs2("ddd")%>" size="2" maxlength="3"> 
                <span class="style5">-</span>                <input name="telefone" type="text" class="fct1" id="telefone" value="<%=rs2("telefone")%>" size="7" maxlength="9"></td>
            </tr>
            <tr>
              <td colspan="3" class="style1"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Tipo de Hosp:</div></td>
              <td colspan="2"> <input name="tipo" type="text" class="fct1" id="tipo" value="<%=rs2("tipo")%>" size="50" maxlength="100"></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Valor:</div></td>
              <td colspan="2" valign="top"> <input name="vl_a_vista" type="text" class="fct1" id="vl_a_vista" value="<%=rs2("vl_a_vista")%>" size="7" maxlength="9"> 
                <span class="style5">à vista</span></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Valor:</div></td>
              <td colspan="2" valign="top"> <input name="vl_a_prazo" type="text" class="fct1" id="vl_a_prazo" value="<%=rs2("vl_a_prazo")%>" size="7" maxlength="9">
                <span class="style5">02 vezes</span></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Quartos:</div></td>
              <td colspan="2" valign="top"> <input name="adt" type="text" class="fct1" id="adt" value="<%=rs2("adt")%>" size="1" maxlength="2"> 
                <span class="style5">Adultos -</span>                <input name="chd" type="text" class="fct1" id="chd" value="<%=rs2("chd")%>" size="1" maxlength="2"> 
                <span class="style5">Crianças</span></td>
            </tr>
            <tr bgcolor="#FF9999" class="style1">
              <td colspan="3" bgcolor="#FFFFFF" class="style8"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Dados do Vôo:</div></td>
              <td colspan="2" valign="top"> <input name="numero_voo" type="text" class="fct1" id="numero_voo" value="<%=rs2("numero_voo")%>" size="7" maxlength="9">
              <span class="style5">- Hora: 
              <input name="hora_voo" type="text" class="fct1" id="hora_voo" value="<%=rs2("hora_voo")%>" size="3" maxlength="5">
              - Cia. Aérea:
              <input name="cia_aerea" type="text" class="fct1" id="cia_aerea" value="<%=rs2("cia_aerea")%>" size="7" maxlength="9">
              </span></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Saída do Vôo:</div></td>
              <td colspan="2" valign="top"> <span class="style5"><input name="hora_voo_saida" type="text" class="fct1" id="hora_voo_saida" value="<%=rs2("hora_voo_saida")%>" size="3" maxlength="5">
                </span></td>
            </tr>
            <tr bgcolor="#FF9999" class="style1">
              <td colspan="3" bgcolor="#FFFFFF" class="style8"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr>
              <td class="style8"><div align="right">Observações:</div></td>
              <td colspan="2" valign="top"> <span class="style5">
                <textarea name="obs" cols="50" class="fct1" id="obs"><%=rs2("obs")%></textarea>
              </span></td>
            </tr>
            <tr bgcolor="#FF9999" class="style1">
              <td colspan="3" bgcolor="#FFFFFF" class="style8"><div align="center"><span class="style7">------------------------------------------------------------------------------------------------------------------------</span></div></td>
            </tr>
            <tr> 
              <td valign="top"> </td>
              <td width="10%" valign="top"> <div align="left">
                  <input name="submit" type="submit" class="fct2" value="Alterar">
              </div></td>
              <td valign="top"><input name="button" type="button" class="fct2" onClick="javascript:history.go(-1)" value="Voltar"></td>
            </tr>
          </table>
          <div align="center"></div>
        </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no seu form voce não criou o input para passar o código ou foi impressão minha?

 

o restante vi lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está como autonumeração, é um campo numerico.

na parte: where codigo=" & codigo

coloca assim:

where codigo='" &codigo&"'"

Na pagina que envia os dados, você define o codig1 antes do <form></form> mas não o coloca dentro do formulário.

precisa coloca-lo dentro do formulário, pode ser usando um <input type='hidden' ... com a variavel que tem o valor do codigo1, senão a variavel na pagina que processa os dados do formulário continuará vindo vazia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está errado seu código

 

Tente entender o funcionamento e não apenas copiar códigos

 

Você precisa passar este valor de algum jeito

 

Adicione um novo campo com este valor no seu formulário e teste para ver como passará a recuperar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode ser, pois como eu disse eu tenho outro formulário que é a mesma coisa e funciona corretamente, seguem os dois códigos:

 

"Alterar Presentes"

<%
dim ID, strsql2, rs2
numero1=request.querystring("numero1")
strsql2="select * from cotas where numero=" & numero1
set rs2=Conn.execute(strsql2)
numero1=rs2("numero")
%>

" Alterar Presentes Resposta"

<%
numero            = request.form("numero1")
nome            = Request.Form("nome")
email            = Request.Form("email")
valor            = Request.Form("valor")

strsql2="update cotas set nome='" & nome & "', email='" & email & "', valor='" & valor &"' where numero=" & numero
set rs2=Conn.execute(strsql2)
%>

A única diferença e que neste formulário o campo autonumérico é chamdo de "número" e no anterior é de "codigo", no restante está tudo igual !!

 

Inseri o Imput que estava faltando:

<input type="hidden" name="codigo1" value="<%=codigo1%>">

Agora apareceu a seguinte mensagem:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/josephine_thales/controle/alterar_hospede_a.asp, line 57

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como nesse outro que te passei agora funciona corretamente, e faço a alteração normal no formulário ??

 

Adicionei o campo:

<input name="codigo" type="text" class="fct1" id="codigo" value="<%=rs2("codigo")%>" size="7" maxlength="9">

Aparece a seguinte msg:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/josephine_thales/controle/alterar_hospede_a.asp, line 57

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certamente deve passar de outra forma este valor

 

Não tem como o código adivinhar se você não passar

 

Bom vi que editou o seu post anterior

 

O novo erro da em que linha? na mesma? se for post um novo print

 

response.write(strsql2)
responde.end

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mesma coisa da primeira vez:

update hospedagem set hospede='LUCIANA GUIMARÃES GONÇALVES DE ARRUDA E PAULO HENR', ddd='92', telefone='9115-9504', email='luguigon@hotmail.com', tipo='', vl_a_vista='', vl_a_prazo='390', adt='01', chd='00', numero_voo='1705', hora_voo='08:35', hora_voo_saida='18:00', cia_aerea='GOL', obs='Corrigindo a solicitaçao de reserva anterior que f' where codigo=14

 

Microsoft VBScript runtime error '800a01a8'

 

Object required: ''

 

/josephine_thales/controle/alterar_hospede_a.asp, line 55

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma coisa não

 

O código aparece, veja lá o 14

 

todos os campos são texto no seu db ou tem algum numérico?

 

o campo código é numérico mesmo?

 

agora temos apenas erro de tipos por enquanto

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque as aspas simples no where codigo=...

 

A mensagem de erro é de tipos incompativeis nos critérios da expressão (sua string sql), supondo que seja o codigo, coloque um CInt na variavel do codigo.

Seria mais ou menos assim:

codigo = request.form("codigo")

codigo = CInt("codigo")

 

Se o erro permanecer, sugiro depurar essa string, pois é possivel que algum outro parametro precisará ser convertido para que possa rodar sem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"14" é o valor que está no campo "codigo" dentro do db

 

Mesma coisa não

 

O código aparece, veja lá o 14

 

todos os campos são texto no seu db ou tem algum numérico?

 

o campo código é numérico mesmo?

 

agora temos apenas erro de tipos por enquanto

 

 

Eu tenho campos Texto, Unidade Monetária e Memorando

 

O Campo código é Numeração automática...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.