Ir para conteúdo

POWERED BY:

Arquivado

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

l_nando

[Resolvido] Excluir registros com checkbox

Recommended Posts

Galera, bom dia!

 

Estou tentando excluir registros do meu bd via checkbox e está dando o seguinte erro:

 

Microsoft JET Database Engine (0x80040E14)

Erro de sintaxe (operador faltando) na expressão de consulta 'modelcarro IN (GOL, CELTA)'.

 

 

Segue linha que acusa o erro:

 

sq = "DELETE FROM ESTQ WHERE modelcarro IN (" & Tboxcar & ");"

 

O que pode ser?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então!

 

Só deleta de um em um e eu gostaria que deletasse todos os selecionados.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o form:

 

<form action="delcar.asp" method="post" name="form1" id="form1">
	  <p><strong class="style2MEDIO"> Informe o Carro: </strong>
	<BR>
			 <%rs.moveFirst
			Do while not rs.eof%>
		   <strong class="style3"><input type="checkbox" name="Tboxcar" Value="<%=rs("modelcarro")%>"><%=rs("modelcarro")%></strong>
			
		  <br>
			<%rs.Movenext
	Loop%>
		  </p>
	  <p>
		<input type="submit" name="Submit" value="EXECUTAR ESCOLHA" />
	  </p>
	</form>

 

DELCAR.ASP

 

 

<!--#include file="conexao.asp" -->
<%
Dim bco, sq, rs, VTBOXCAR

VTBOXCAR = request.Form("TBOXCAR")

sq = "DELETE FROM ESTQ WHERE modelcarro IN (" & VTBOXCAR & ");"

'response.write(sq)
'response.end()

AbreConn

Set rs = bco.execute(sq)

FechaConn

%>
<script>
alert("Dados apagados com Sucesso!!!")
window.location="excluir_carros.htm"
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode fazer dessa forma, pois está trabalhando com texto, então cada um deles devem estar entre aspas simples.

 

Separe o resultado e apague um a um, usando um loop.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até pode excluir usando o IN, mas terá de ter as ' (aspas simples) já na sua variável. Faça o seguinte, após recuperar o campo do FORM faça um replace das "," por "','" e concatene as ' antes e depois de sua variável. Ficaria algo +/- assim:

VTBOXCAR = request.Form("TBOXCAR")
VTBOXCAR = Replace(VTBOXCAR,",","','")
VTBOXCAR = "'"& VTBOXCAR &"'"

Mas lembre-se isso irá excluir TODOS os registros que contenham APENAS esses textos no campo modelcarro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado, boa tarde.

 

Tentei deste jeito, mas está excluindo somente 1 registro, por exemplo:

Eu seleciono 3, mas exclui só o primeiro.

 

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, bom dia.

 

Resolvido:

 

Fiz assim:

 

VTBOXCAR=request.form("TBOXCAR")
VTBOXCAR=split(VTBOXCAR,",")
for i=lbound(VTBOXCAR) to ubound(VTBOXCAR)
valor=trim(VTBOXCAR(i))
sq="delete * from ESTQ WHERE modelcarro='"&valor&"'"

AbreConn

Set rs = bco.execute(sq)

next

FechaConn

e todos os dados correspondentes aos check selecionados foram deletados.

 

Mais uma vez obrigado Pachevisk, hargon, Salgado pela força.

 

Abraços. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

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.