Notifications
Clear all

Deletar dado no excel através de dado deletado no access

3 Posts
3 Usuários
0 Reactions
1,903 Visualizações
(@victorbg)
Posts: 1
New Member
Topic starter
 

Boa noite, ops, quer dizer bom dia a todos!

Estava aqui travado, agora nem tanto por ter descoberto a função de como deletar linhas em uma tabela no excel só que agora pensando em como eu poderia resolver este problema utilizando a melhor lógica pra isso. Fiz uma função logo abaixo que tem como objetivo listar e atualizar os dados que são inseridos no excel o que ficou assim:

Sub atualizar_click()
   Dim DBFullName As String
   Dim connect As String, Source As String
   Dim Col As Integer
   Dim Row As Integer
   
   DBFullName = "C:UsersVictorDocumentsise.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 nomes dos campos da tabela
         Range("C13").Offset(0, Col).Value = rs.Fields(Col).Name
      Next
      
      'cópia do valor contido no banco na linha vazia abaixo do nome do campo 
      Range("C13").Offset(1, 0).CopyFromRecordset rs
   End With
 
   Set rs = Nothing
   
End Sub

É que o formulário que estou fazendo consiste em "espelhar" a ação realizada no banco de dados, de igual forma na tabela do excel. Para isso estou tentando fazer um deletar apoderando da mesma lógica só que não sei de qual forma eu poderia fazer para comparar cada um dos dados da cotação nas linhas da tabela com o valor que foi digitado pelo usuário no VBA estou tentando assim, fiz um teste utilizando Range.offset.entireRow.delete e está excluindo até mas ainda não como desejo:

Sub deletarDaLista_click()
   Dim DBFullName As String
   Dim connect As String, Source As String
   Dim Col As Integer
   Dim Row As Integer
   
   DBFullName = "C:UsersVictorDocumentsise.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 nomes dos campos da tabela
         Range("C13").Offset(0, Col).Value = rs.Fields(Col).Name
      Next
      
      'For Row = 1 To rs.GetRows ??
      'While Not rs.EOF ??
         'Apenas um teste
         Range("C13").Offset(1, 0).EntireRow.Delete
      ' outro teste aqui   rs.MoveNext
      Wend
      'cópia do valor contido no banco
      ele
   End With
   
   Set rs = Nothing
   
End Sub

Gostaria de saber como eu poderia fazer esta função? No formulário fiz uma que está deletando normalmente o usuário pela cotação dele só que no banco de dados access, dai esta deletarDaLista_click() tem como objetivo deletar o usuário só que a intenção é pegar o que foi digitado na textbox da cotação e comparar com todos os valores linha por linha da coluna cotação até achar o correspondente e fazer a exclusão da linha inteira (como fiz testando lá em cima).

 
Postado : 22/01/2019 1:41 am
(@klarc28)
Posts: 971
Prominent Member
 

No VBA, uma função deve ser nomeada como Function, quando aparece Sub, não é uma função. É um procedimento ou macro.

Exemplo a ser estudado e modificado:

Private Sub ToggleButton4_Click()
Dim LINHA As Long
Dim linha2 As Long
linha2 = Planilha1.Range("A1000000").End(xlUp).Row 
For LINHA = 2 To linha2

If Planilha1.Range("A" & LINHA).Value = TextBox1.Text Then

Planilha1.Range("A" & LINHA).EntireRow.Delete
MsgBox "Exclusão realizada com sucesso!"
End If
Next LINHA
End Sub

Vídeos relacionados:

https://www.youtube.com/results?search_query=excel+vba+excluir+linha

Tópico relacionado:

http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=30305&p=150044#p150044

 
Postado : 22/01/2019 4:52 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

VictorBG,

Bom dia!

Para melhor compreensão de todos e rápida ajuda, anexe, aqui mesmo no fórum, seu arquivo ou pequeno exemplo dele (máximo de 5 linhas), compactado com .ZIP.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 22/01/2019 5:54 am