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