Ir ao conteúdo
  • Cadastre-se

Excel VBA - Deletar campos de uma linha no excel a partir do VBA


Posts recomendados

Olá galera!! 

Estou aqui travado tentando desenvolver uma listagem de todos os dados de uma tabela do banco de dados access a partir do VBA dentro de uma tabela criada no excel, dai fiz uma que atualizasse quando alguma linha fosse inserida e agora estou tentando fazer uma para deletar no excel a linha que foi excluída no banco de dados. Basicamente ficou assim para inserir:
 

Sub atualizar_click()

   Dim DBFullName As String
   Dim connect As String, Source As String
   Dim Col As Integer
   
   DBFullName = "C:\Users\Victor\Documents\ise.accdb"
   
   'Call Connection
   
   Set rs = New ADODB.Recordset
   
   With rs
      Source = "SELECT * FROM estudantes ORDER BY cotacao"
      
      Call Connection
      
      .Open Source:=Source, ActiveConnection:=con
      
      For Col = 0 To rs.Fields.Count - 1
         'leitura dos campos da tabela
         Range("C13").Offset(0, Col).Value = rs.Fields(Col).Name
      Next
      
      'cópia do valor contido no banco
      Range("C13").Offset(1, 0).CopyFromRecordset rs
      
    End With
    Set rs = Nothing
End Sub

Essa acima atualiza a tabela que está no excel quando algum dado é inserido inserindo uma linha de valores de acordo com a cotação que foi pesquisada. Agora estou tentando fazer uma função que atualizasse a tabela quando um certo dado de cotação fosse excluído dessa tabela no excel (Obs: No access está funcionando normalmente essa função, agora o meu problema está para que a atualização ocorra na tabela do excel que nem ocorre no banco de dados, tentei isso:

Sub deletarDaLista_click()

   Dim DBFullName As String
   Dim connect As String, Source As String
   Dim Col As Integer
   
   DBFullName = "C:\Users\Victor\Documents\ise.accdb"
   
   'Call Connection
   
   Set rs = New ADODB.Recordset
   
   With rs
      Source = "SELECT * FROM estudantes ORDER BY cotacao"
      
      Call Connection
      
      .Open Source:=Source, ActiveConnection:=con
      
      For Col = 0 To rs.Fields.Count - 1
         Range("C13").Offset(0, Col).Value = rs.Fields(Col).Name
         
         If (Range("C13").Offset(1, Col).Value = rs.Fields("cotacao")) Then
             Range("C13").Offset(1, Col).ClearContents
         End If
      
      Next
      
      'Range("C13").Offset(1, 0).RemoveDuplicates
      
      'para excluir
      'Range(Cells(14, 3), Cells(14, 38)).ClearContents
      
    End With
   
   'Sheet1.Columns.AutoFit
    Set rs = Nothing
   
End Sub

O meu objetivo é que toda a linha além de ser excluída do banco seja excluída também no excel, e se houver alguma linha não vazia embaixo dessa que ela ocupe a posição da linha que foi excluída. Não sei se minha dúvida ficou clara aqui... mas mesmo assim muito obrigado!!
 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...