Ir para conteúdo

POWERED BY:

Arquivado

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

Arnaldo

Excluir registro Banco access com ASP

Recommended Posts

Boa noite - no codigo abaixo

 

<%
			   'SELECIONO A TABELA

	Dim objConn
	Dim varConn
	Dim varSql
	Dim rsMuralRecados
	Dim i
	Set objConn = Server.CreateObject("ADODB.Connection")
	varConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Dados\Mural.mdb") & ";Persist Security Info=False;Jet OLEDB:Database Password="
	objConn.Open varConn
	varSql = "SELECT * "
	varSql = varSql & "FROM MuralRecados "
	varSql = varSql & "ORDER BY IdRecado DESC "
	Set rsMuralRecados = Server.CreateObject("ADODB.Recordset")
	rsMuralRecados.CursorType = 0
	rsMuralRecados.CursorLocation = 3
	rsMuralRecados.LockType = 3
	rsMuralRecados.PageSize = 7
	rsMuralRecados.CacheSize = 7
	rsMuralRecados.Open varSql, objConn
	If Request.QueryString("Pagina") <> "" Then
		rsMuralRecados.AbsolutePage = Request.QueryString("Pagina")
	Else
		If Not rsMuralRecados.EOF Then
			rsMuralRecados.AbsolutePage = 1
		End If
	End If
%>

Preencho a tabela com os dados da tabela

 

<table cellpadding="0" cellspacing="0" border="0" width="500" align="center">
			<%For i = 1 to rsMuralRecados.PagesiZe%>
			<%If rsMuralRecados.EOF = False Then%>
			<tr>
			  <td><table border="0" width="100%">
				  <tr>
					<td><font color="#FF0000" class="Texto2"> <Em><B> Data/Hora Envio: </font><font color="#FFFFFF" class="Texto1"> <%=FormataData(rsMuralRecados.Fields("DataInclusao")) & " - " & rsMuralRecados.Fields("HoraInclusao")%> </font> </td>
				  </tr>
				  <tr>
					<td><font color="#FF0000" class="Texto2"> <Em><B> De: </font><font color="#FFFFFF" class="Texto1"> <%=rsMuralRecados.Fields("De")%> </font> </td>
				  </tr>
				  <tr>
					<td><font color="#FF0000" class="Texto2"> <Em><B> Para: </font><font color="#FFFFFF" class="Texto1"> <%=rsMuralRecados.Fields("para")%> </font> </td>
				  </tr>
				  <tr>
					<td><font color="#FF0000" class="Texto2"> <Em><B> Mensagem: </font><font color="#FFFFFF" class="Texto1"> <%=rsMuralRecados.Fields("Mensagem")%> </font> </td>
				  </tr>
				  <tr>
					<td><font color="#FF0000" class="Texto2"> <Em><B> Nº Mensagem: </font><font color="#FFFFFF" class="Texto1"> <%=rsMuralRecados.Fields("Idrecado")%> </font> </td>
				  </tr>
				  <%rsMuralRecados.MoveNext%>
	<%If i <> rsMuralRecados.PageSize and NOT rsMuralRecados.EOF Then%>
				  <tr>
					<td height="5">
				</tr>
				  <tr>
					<td height="1" bgcolor="#CCCCCC"></td>
				  </tr>
				  <tr>
					<td height="5"></td>
				  </tr>
				  <%End If%>
			  </table></td>
			</tr>
			<%End If%>
			<%Next%>
		  </table>

esse registro é o ID -----

 

<td><font color="#FF0000" class="Texto2"> <Em><B> Nº Mensagem: </font><font color="#FFFFFF" class="Texto1"> <%=rsMuralRecados.Fields("Idrecado")%> </font> </td>

1 - Como eu faço para pegar este numero e excluir da tabela ?

2 - Tem como criar uma função na mesma pagina para exclusão ?

 

Obs. só eu vou excluir os registros

 

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer um querystring para uma variável do id que você passa via URL.

 

Aí na página destinatária(pode ser sim a mesma) você faz um if. Se a variável do querystring for vazia, então fim de papo. Se não for quer dizer que algo veio por parâmetro. Nesse caso você usa um delete from com where básico colocando esse parâmetro que veio na URL e ao final da exclusão você redireciona para a mesma página porém sem nada mandando na url utilizando Response.Write, Java Script e location.href.

 

Abraços,

Giancarlo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, desculpa. Achei que já soubesse direitinho.

 

Olha.

No link de exclusão você coloca o link e na frente dele você concatena uma variável que guarde aquele ID.

 

Assim. Vamos supor que você esteja fazendo um LOOP de um recordset que vai puxar seus registros:

 

<%
Do While NOT rs.EOF
%>

<a href="apropriapagina.asp?id=<%=rs("id")%>">EXCLUIR</a>

<%
rs.MoveNext
Wend
%>

Aí pronto! Você já está mandando via URL aquele ID que suponho que seja um campo autonumérico que você tenha feito.

 

Bom. Agora vamos fazer a exclusão na mesma página, ok?

Lá no topo dessa página você coloca:

 

<%
id = request.querystring("id")
If id <> "" Then

ssql = "DELETE FROM tabela WHERE id = '"&id&"'  "
conexao.Execute(ssql)

response.write("<script>alert('excluimos com sucesso');</script>")
response.write("<script>location.href='apropriapagina.asp';</script>")
End If
%>

Pronto. Ele pega e verifica se o que você manda via URL, que é o ID se é branco. Se for branco quer dizer que você não mandou nada e não tem nada que excluir.

Agora se ele não vier branco então quer dizer que você deve excluir, aí você executa o comando sql concatenado com essa variável que chegou via URL e depois usa response.write com java script para dar mensagem de sucesso e redirecionar para esta mesma página..

 

 

Entendeu agora?

 

Abraço,

Giancarlo Braga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite

 

GeanCarlo obrigado por responder.

 

 

A tela quando aberta mostra toas as mesagens em ordem de ID, se apresenta como abaixo qtas tiver.

 

Data

DE

Para

Mensagem

Nº da Mensagem(id) ------>>(diagmos que aqui seja a 1)

Campo(pra digitar o Nº da Mensagem)--- Botão Excluir

 

Data

DE

Para

Mensagem

Nº da Mensagem(id)------>>(diagmos que aqui seja a 2)

Campo(pra digitar o Nº da Mensagem)--- Botão Excluir

 

Data

DE

Para

Mensagem

Nº da Mensagem(id)------>>(diagmos que aqui seja a 3)

Campo(pra digitar o Nº da Mensagem caso queira excluir)--- Botão Excluir

 

Imagem Postada

Se eu quiser excluir a 3 eu digito o numero 3 e clico no botão para excluir a mensagem de ID = 3

 

Eu pensei assim(porem não sei como fazer)

 

1 - Ao clicar no botão verificar se o campo está vazio

2 - Se não estiver chamar uma função para excluir na mesma pagina.

 

Obs . Este TextField e o botão coloquei dentro de um form

 

Dúvida

 

No inicio da pagina tenho a abertura do banco de dados e tabelas, no Body é feito o preenchimento da tabela da pagina, e no final após o fechamento do html(pagina) tem o fechamento do Banco de dados e zerada a memoria como abaixo.

 

</html>

<%
	rsMuralRecados.Close
	Set rsMuralRecados = Nothing
	objConn.Close
   Set objConn = Nothing
%>

Pergunto - este fechamento acontece somente ao fechar a pagina ou após ser processada a tabela do banco de dados ?

 

porque estou com duvidas se tenho que fazer a abertura novamente do banco

 

 

Obrigado pela atenção dispensada a um iniciante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Você pode fazer a checagem para ver se o campo está vazio através de Java Script.

 

Veja um exemplo:

 

Aqui está seu campo e botão:

<form name="formulario" method="POST" action="excluir.asp">
	   <input type="text" name = "texto" value="">
	   <input type=" button" onClick="funcaoQueVerifica();">
</form>

<script>
function funcaoQueVerifica(){
	 texto = document.formulario.texto.value;
	 
	 if text != '' {
		 document.formulario.submit();
	 }else{
		alert('Você deve preencher algo!');
	 }


}
</script>

Então aí está...se o campo de texto estiver em branco ele mostra um alert com mensagem de erro e não submete.

 

Detalhes importantes:

- Este botão que eu coloquei é do tipo BUTTON e não do SUBMIT. Pois o submit nós faremos através do Java Script.

- Aqui estamos usando o DOM do Java Script para acessar certas coisas em certos elementos dentro do código através de um método de raízes. Estude mais sobre HTML DOM aqui em www.w3schools.com. Lá tem uma referência muito boa e com exemplos. Isso é extremamente útil quando se trabalhe com programação comercial por exemplo.

- Cuidado ao 'navegar' por essas raízes usando DOM, como por exemplo em: document.formulario. Ali formulario você coloca o nome do formulário onde a caixa de texto está! Ok?

 

 

Agora como você poderá pegar este ID do que foi digitado no campo?

Fácil.

Basta dar o submit neste formulário que vai para a página excluir.asp e é do método POST.

 

Na próxima página, essa excluir.asp, você coloca:

codigo = Request.Form("texto")

 

Agora nessa linha você pegou o que veio do campo 'texto' neste formulário da página anterior.

Então é só construir seu DELETE FROM em cima deste código utilizado na cláusula WHERE do seu SQL.

 

 

É simples, fácil e te garanto que depois da primeira vez, se você for fazendo experiências vai descobrir muitas coisas novas. Aqui na empresa nós trabalhamos com ASP. E a gente normalmente utiliza muito Java Script com DOM, muito ASP passando pelo método POST e em alguns casos para simplificar a vida a gente faz esta exclusão mandando este parâmetro para a mesma página. Como faz isso? Simples! Você armazena num campo do tipo hidden a informação do CODIGO da vez e puxa ele nessa mesma página.

 

 

Abraços,

Giancarlo Braga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geancarlo mais uma vez obrigado por responder.

 

 

você falou no objeto hidden ai pensei o seuinte.

 

Observe a imagem acima postada no tópico.

 

Para cada mensagem vai aparecer um campo e um botão excluir.

 

como eu faria pra preencher automaticamente aquele campo com o nº da mensagem e deixa-lo invisivel, e só clicar no botão excluir para apagar a mensagem.

 

outra coisa você não respondeu sobre o fechamento do banco quando ocorre ?

 

 

Obrigado estou aprendendo com suas dicas

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.