Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Amador: Como Alterar E Excluir


hellxande

Pergunta

Bom Dia a Todos !

Estou fazendo alguns testes com os recursos de Alteração e Exclusão de registros no Banco.

Montei dois arquivos sendo um que mostra todos os registros do Banco e neste existe um link p/ Alterar o registro desejado, porém quando clico no link Alterar independente de qual registro seja sempre me mostra o conteúdo do primeiro registro na página de apresentação dos dados do registro selecionado, sendo assim nem consigo chegar na parte de alteração mesmo.

Imagino que seja alguma coisa muito besta que estou fazendo, sendo assim resolvi pedir ajuda.

Segue abaixo os Códigos Completos:

=================

Mostrar todos os Registros

=================

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Set db = server.createobject("adodb.connection")
Banco = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Banco/Banco.mdb")
db.CursorLocation = 3
db.Open "Banco"

tab = Server.CreateObject("adodb.recordset")
sql = "SELECT * FROM TABCADASTRO ORDER BY CODIGO ASC"
set tab = db.execute(sql)
%>

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="70%" cellpadding="0">
  <tr> 
    <td width="20%"><strong>Nome</strong></td>
    <td width="18%"><strong>Email</strong></td>
    <td width="23%"><strong>Endereco</strong></td>
    <td width="22%"><strong>Cidade</strong></td>
    <td width="17%"><strong>UF</strong></td>
  </tr>
</table>
<%
count = 0
Do While Not tab.eof
%>
<table width="90%" cellpadding="0">
  <tr> 
    <td width="14%"><%=tab("NOME")%></td>
    <td width="16%"><%=tab("EMAIL")%></td>
    <td width="18%"><%=tab("ENDERECO")%></td>
    <td width="17%"><%=tab("CIDADE")%></td>
    <td width="13%"><%=tab("UF")%></td>
    <td width="11%"><div align="center"><a href="altera.asp">Alterar</a></div></td>
    <td width="11%"><div align="center">Excluir</div></td>
  </tr>
</table>
</body>
</html>
<%
tab.MoveNext
count=count+1
Loop
%>
==================== Apresentar o registro desejado ====================
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Set db = server.createobject("adodb.connection")
Banco = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Banco/Banco.mdb")
db.CursorLocation = 3
db.Open "Banco"

tab = Server.CreateObject("adodb.recordset")
sql = "SELECT * FROM TABCADASTRO"
set tab = db.execute(sql)
%>
<Html>
<Body>
<div align="center">
<H1> Cadastro de Clientes </H1>
<Form action="gravacaopost.asp" method="post">
<p>Nome Funcionario: <input type="text" size=50 value="<%=(tab.Fields.Item("NOME").Value)%>" maxlength="50" name="Nome"><br>
</p>
<p>Email: <input type="text" size=50 value="<%=(tab.Fields.Item("EMAIL").Value)%>" maxlength="50" name="Email"><br>
</p>
  <p>Endereço: <input type="text" size=80 value="<%=(tab.Fields.Item("ENDERECO").Value)%>" maxlength="50" name="Endereco"><br>
</p>
  <p>Cidade: <input type="text" size=50 value="<%=(tab.Fields.Item("CIDADE").Value)%>" maxlength="20" name="Cidade"><br>
</p>
  <p>UF: <input name="UF" type="text" value="<%=(tab.Fields.Item("UF").Value)%>" size=10 maxlength="2" ><br>
</p>
<p><input type="Submit" Value="Gravar">  <input type="Reset" Value="Limpar Dados">
</div>
</Form>
</Body>
</Html>

Desde já agradeço a atenção e ajuda de todos.

Hellxande

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

veja bem alexandre... quando você clica no link de algum item para editar como que o codigo vai saber o que você clicou? você não pos nenhuma referencia pra ele filtrar na pagina de edição.

O que você precisa é usar uma codigo unico - que não se repita - (chave primaria) para ele saber o que exatamente você clicou.

então faça as adaptações:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

Set db = server.createobject("adodb.connection")

Banco = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Banco/Banco.mdb")

db.CursorLocation = 3

db.Open "Banco"

tab = Server.CreateObject("adodb.recordset")

sql = "SELECT * FROM TABCADASTRO ORDER BY CODIGO ASC"

set tab = db.execute(sql)

%>

<html>

<head>

<title>Documento sem título</title>

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

</head>

<body>

<table width="70%" cellpadding="0">

<tr>

<td width="20%"><strong>Nome</strong></td>

<td width="18%"><strong>Email</strong></td>

<td width="23%"><strong>Endereco</strong></td>

<td width="22%"><strong>Cidade</strong></td>

<td width="17%"><strong>UF</strong></td>

</tr>

</table>

<%

count = 0

Do While Not tab.eof

%>

<table width="90%" cellpadding="0">

<tr>

<td width="14%"><%=tab("NOME")%></td>

<td width="16%"><%=tab("EMAIL")%></td>

<td width="18%"><%=tab("ENDERECO")%></td>

<td width="17%"><%=tab("CIDADE")%></td>

<td width="13%"><%=tab("UF")%></td>

<td width="11%"><div align="center"><a href="altera.asp?cod=<%= tab("nome_do_campo_codigo")%>">Alterar</a></div></td>

<td width="11%"><div align="center">Excluir</div></td>

</tr>

</table>

</body>

</html>

<%

tab.MoveNext

count=count+1

Loop

%>

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

Set db = server.createobject("adodb.connection")

Banco = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Banco/Banco.mdb")

db.CursorLocation = 3

db.Open "Banco"

tab = Server.CreateObject("adodb.recordset")

sql = "SELECT * FROM TABCADASTRO where cod = "& request.querystring("cod")

set tab = db.execute(sql)

%>

<Html>

<Body>

<div align="center">

<H1> Cadastro de Clientes </H1>

<Form action="gravacaopost.asp" method="post">

<p>Nome Funcionario: <input type="text" size=50 value="<%=(tab.Fields.Item("NOME").Value)%>" maxlength="50" name="Nome"><br>

</p>

<p>Email: <input type="text" size=50 value="<%=(tab.Fields.Item("EMAIL").Value)%>" maxlength="50" name="Email"><br>

</p>

<p>Endereço: <input type="text" size=80 value="<%=(tab.Fields.Item("ENDERECO").Value)%>" maxlength="50" name="Endereco"><br>

</p>

<p>Cidade: <input type="text" size=50 value="<%=(tab.Fields.Item("CIDADE").Value)%>" maxlength="20" name="Cidade"><br>

</p>

<p>UF: <input name="UF" type="text" value="<%=(tab.Fields.Item("UF").Value)%>" size=10 maxlength="2" ><br>

</p>

<p><input type="Submit" Value="Gravar"> <input type="Reset" Value="Limpar Dados">

</div>

</Form>

</Body>

</Html>

Link para o comentário
Compartilhar em outros sites

  • 0

Prezada Andreia.

Primeiramente obrigado, fiz a alteração conforme sua dica e funcionou perfeitamente, ou seja, a página que mostra as informações que serão alteradas agora apresenta as informações do registro selecionado.

Diante disso fiz o meu Alterapost.asp que tem como objetivo alterar as informações, tomando de base a dica que me passou.

Porém acho que novamente estou cometendo um erro besta, pois esta me acusando a seguinte mensagem de erro:

=========

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0401)

Fim da instrução esperado

/alexandre/Alterapost.asp, line 27, column 147

sql="update TABCADASTRO set NOME='"&p_nomefunc&"',EMAIL='"&p_email&"',ENDERECO='"&p_endereco&"',CIDADE='"&p_cidade&"',UF='"&p_uf&"' where CODIGO='"tab("CODIGO")"'"

========

Segue abaixo o Código que estou usando:

=========

<%@language="VBScript"%>

<Html>

<Body>

<div align="center">

<%

p_nomefunc=Request.Form("NOME")

p_email=Request.Form("EMAIL")

p_endereco=Request.Form("ENDERECO")

p_cidade=Request.Form("CIDADE")

p_uf=Request.Form("UF")

Set db = server.createobject("adodb.connection")

Banco = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Banco/Banco.mdb")

db.CursorLocation = 3

db.Open "Banco"

sql="update TABCADASTRO set NOME='"&p_nomefunc&"',EMAIL='"&p_email&"',ENDERECO='"&p_endereco&"',CIDADE='"&p_cidade&"',UF='"&p_uf&"' where CODIGO='"tab("CODIGO")"'"

db.execute(sql)

db.close

set db=NOTHING

%>

<H2> Gravação Efetuada </H2>

<strong>Nome:</strong> <%=p_nomefunc%><Br>

<strong>E-mail:</strong> <%=p_email%><Br>

<strong>Endereço:</strong> <%=p_endereco%><Br>

<strong>Cidade:</strong> <%=p_cidade%><Br>

<strong>UF:</strong> <%=p_uf%><Br>

<A HREF="index.asp"> Voltar<br>

</A><A HREF="todos.asp">Todos<br>

</A></div>

</Body>

</Html>

Desde já agradeço a ajuda.

Hellxande

Link para o comentário
Compartilhar em outros sites

  • 0
sql="update TABCADASTRO set NOME='"&p_nomefunc&"',EMAIL='"&p_email&"',ENDERECO='"&p_endereco&"',CIDADE='"&p_cidade&"',UF='"&p_uf&"' where CODIGO='"&tab("CODIGO")&"'"

mas verifique se no seu BD codigo é texto mesmo porque se for numerico, então faça:

sql="update TABCADASTRO set NOME='"&p_nomefunc&"',EMAIL='"&p_email&"',ENDERECO='"&p_endereco&"',CIDADE='"&p_cidade&"',UF='"&p_uf&"' where CODIGO="&tab("CODIGO")

ps: utilize tags para códigos

Link para o comentário
Compartilhar em outros sites

  • 0

Prezada Andreia.

Infelizmente não entendi o que me sugeriu agora.

O Campo Codigo em meu BD é auto incremento e na verdade aquele tab que coloquei na Query do Update não existe.

você poderia me explicar de outra forma o que devo fazer p/ ficar correto.

Link para o comentário
Compartilhar em outros sites

  • 0

Codigo vem da onde? é pelo link? se for, faça o mesmo que com o select:

sql="update TABCADASTRO set NOME='"&p_nomefunc&"',EMAIL='"&p_email&"',ENDERECO='"&p_endereco&"',CIDADE='"&p_cidade&"',UF='"&p_uf&"' where CODIGO="&request.querystring("CODIGO")

Link para o comentário
Compartilhar em outros sites

  • 0

Prezada Andreia

Realmente eu estava errando neste código do Update porém também estava errando na tela de apresentação das informações do Registro que estava selecionando, pois o Form da mesma não estava passando a referência do Código a ser alterado.

Sendo assim muito Obrigado pela ajuda..

Depois eu vou Editar este Post, p/ colocar os Códigos que usei afim de ajudar outros novatos como eu...

Valeu !!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...