Ir ao conteúdo
  • Cadastre-se

Erro ao incluir dados com UPDATE


prazuk

Posts recomendados

Pessoal estou necessitando de uma ajuda de vocês.

Tenho um banco de dados com um cadastro com informações pessoais como email, telefone, celular, profissão e outras.

Em uma determinada página quero escolher o nome de uma pessoa já cadastrada e modificar sua profissão com base em uma lista.

Porém, não estou conseguindo atualizar o banco de dados. Aparece somente uma página em branco sem qualquer mensagem de erro.

Acho que o erro está na cláusula WHERE. O comando SQL não está reconhendo '"&nome como um campo do formulário.

Se puderem me ajudar.......

Essa é página do formulário:

<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strQuery, strConnection

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("banco.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

strQuery = "SELECT * FROM cadastro WHERE profissao IS NULL ORDER BY nome"

Set ObjRs = objConn.Execute(strQuery)
%>

<html><head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />


<title>:: pol ::</title>
</head>

<body>

<p>

<form method="POST" action="atualiza.asp" name="form">

<table width=600 border=5 bordercolor=f5f5f3 align=center cellpadding=8>

<tr>

<td class=texto-tabela-dados>
Escolha um nome
</td>
<td class=texto-tabela-dados>
<select name="nome">

<%While Not objRS.EOF %>

<option><%Response.write objRS("nome")%></option>
<%
'Move para o próximo registro
objRS.MoveNext
Wend
'Fechando as conexões
objRs.close
objConn.close
Set objRs = Nothing
Set objConn = Nothing
%>

</select>
</td>
</tr>

<tr>
<td class=texto-tabela-dados>
Escolha a profissão
</td>
<td class=texto-tabela-dados>
<select name="profissao">
<option selected>Escolha a situação</option>
<option>medico</option>
<option>advogado</option>
<option>dentista</option>
</select>
</td>
</tr>
</table>

<center>
<input type=submit name=submit value=Incluir style="{<font-family:Arial; font-size:12}"></center>
</form>
</div>


</body>
</html>

E esse é o aquivo atualiza.asp:

<%
Option Explicit
Response.Expires = 0
Dim objConn, objRs, strConnection, strQuery, nome, profissao

nome = request.form("nome")
profissao = request.form("profissao")

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "DBQ=" & Server.MapPath("banco.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

strQuery = "UPDATE cadastro SET profissao = '"&profissao&"' WHERE nome = '"&nome

On error Resume Next
Set ObjRs = objConn.Execute(strQuery)
objConn.close
Set objRs = Nothing
Set objConn = Nothing
if err = 0 Then
response.redirect "sucesso.asp"
end if
%>

Link para o comentário
Compartilhar em outros sites

Cláusula UPDATE

UPDATE [NOME_TABELA] SET [NOME_CAMPO] = [EXPRESSÃO][...n] WHERE [CONDICAO_SQL]

atualiza.asp

<%

Option Explicit

Response.Expires = 0

Dim objConn, objRs, strConnection, strQuery, nome, profissao

nome = request.form("nome")

profissao = request.form("profissao")

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "DBQ=" & Server.MapPath("banco.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

strQuery = "UPDATE cadastro SET profissao = '"&profissao&"' WHERE nome = '"&nome

On error Resume Next

Set ObjRs = objConn.Execute(strQuery)

objConn.close

Set objRs = Nothing

Set objConn = Nothing

if err = 0 Then

response.redirect "sucesso.asp"

end if

%>

profissao = "&profissao&" - retire os "&" da sua variável para ver se ele encontra o valor dela.

nome = '"&nome - faltou fechar aspas, faça a mesma coisa e retire o &.

Tente fazer alterações no seu código para que ele fique assim:

atualiza.asp

<%

Option Explicit

Response.Expires = 0

Dim objConn, objRs, strConnection, strQuery, nome, profissao

nome = request.form("nome")

profissao = request.form("profissao")

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "DBQ=" & Server.MapPath("banco.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"

strQuery = "UPDATE cadastro SET profissao = '"profissao"' WHERE nome = '"nome"

On error Resume Next

Set ObjRs = objConn.Execute(strQuery)

objConn.close

Set objRs = Nothing

Set objConn = Nothing

if err = 0 Then

response.redirect "sucesso.asp"

end if

%>

Tente fazer estas alterações e poste o resultado.

Falou!

Link para o comentário
Compartilhar em outros sites

Não deu certo.............

apareceu o seguinte erro:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

atualiza.asp, line 29

strQuery = "UPDATE cadastro SET profissao = '"profissao"' WHERE nome = '"nome"

-------------------------------------------------^

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...