Notifications
Clear all

Excluir mais de um registro VBA

4 Posts
3 Usuários
0 Reactions
1,085 Visualizações
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Pessoal,

atualmente eu utilizo esse código para excluir um item do meu banco de dados.

 'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    Dim ID As String
    
    ID = txt_codigo
    
    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select * from TB_MM where ID like '" & ID & "' "
    
    'Chama a rotina de conexão com o BD
    Call Conecta
    
    'Atribui a variável de onjeto de BD a execução dos comnados SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)

        'Armazena a resposta do usuário
        resposta = MsgBox("Você está prestes a excluir o registro selecionado! Confirma?", vbQuestion + vbYesNo, "EXCLUSÃO")
        
        'Se o usuário responder SIM (quer excluir o registro)...
        If resposta = vbYes Then
        
            'Abre o Rescordset para exclusão de registros (apaga o registro atual)
            consulta.Delete
            
            'Exibe mensagem de sucesso na exclusão
            MsgBox "Registro Excluído com Sucesso!", vbDefaultButton1, "EXCLUSÃO"
            
            'Chama a rotina de desconexão com o BD (libera variáveis de objeto do BD)
            Call Desconecta
            
            
        Else 'Caso o usuário responda Não (não quer excluir o registro atual)...
            
            'Chama a rotina de desconexão com o BD (libera variáveis de objeto do BD)
            Call Desconecta
            
            'Abandona a subrotina
            Exit Sub
        End If
    

Porém, por necessidade eu salvo varias linhas com o mesmo ID no meu banco EX:

Pedido - Item
0010 - Biscoito
0010 - Macarrão
0010 - Feijão

Como posso fazer para que esse código leia todos os meus pedidos (ID) e exclua todos de uma vez do meu banco?

Welington Gonçalves

 
Postado : 08/04/2017 5:57 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Tente algo assim de forma grosseira


Sub excluir ()

Dim pedido as string
Dim linha as long

linha = 2
pedido = textbox1.value

do while cells(linha,1).value <> ""

if cells(linha,1).value = pedido then

seu codigo para excluir

else

linha = linha +1


loop

end sub

Nao testei (escrevi aqui direto no forum)

Em resumo é so colocar o seu codigo dentro de um loop.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 08/04/2017 6:07 pm
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Mprudencio,
Não consegui pegar bem o código, meu banco de dados é em acess

Welington Gonçalves

 
Postado : 08/04/2017 6:16 pm
Syrax
(@syrax)
Posts: 160
Estimable Member
 

o problema não está no código e sim no comando SQL

use

DELETE from TB_MM where ID like '" & ID & "' "

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 08/04/2017 10:46 pm