Bom dia, pessoal
Por favor, estou com um dúvida em uma macro que fiz utilizando a técnica DAO. O jeito que preciso fazer é utilizando uma base em Excel ao invés de utilizar uma base em Access.
O problema que encontrei foi no comando: Recordset.FindFirst
Não estou conseguindo colocar a sintaxe correta no critério. Poderiam me ajudar?
Segue abaixo o código e anexo os arquivos para teste (só precisando atualizar o endereço do arquivo base).
Option Explicit
Private Endereco2 As String
Private Nome2 As String
Private db As DAO.Database
Private rs As DAO.Recordset
Sub definirenderecosnomes()
Endereco2 = "C:UsersvpoliveiraDesktop"
Nome2 = "base.xlsx"
End Sub
Sub EditaCampoNaBaseDeDados()
Dim Resp As String
Call definirenderecosnomes
Set db = OpenDatabase(Endereco2 & Nome2, False, False, "Excel 12.0")
Set rs = db.OpenRecordset("Plan1$")
Resp = InputBox("Digite o nome da pessoa")
'************************************************
rs.FindFirst "[Nome] = " & Chr(34) & Resp & Chr(34)
'************************************************
'-------------------------------------------------------------------
If rs.NoMatch = True Then
MsgBox "Nome não encontrado", vbOKOnly + vbInformation, "Acesso DAO"
Exit Sub
Else
'Alterar os dados que estão no recordset
rs.Edit
rs!Nome = InputBox("Digite o novo nome")
rs!Cidade = InputBox("Digite a nova cidade")
rs!Pais = InputBox("Digite o novo nome do país")
'Gravar os dados do recordset na base
rs.Update
End If
'-----------------------------------------------------------------
MsgBox "Registro alterado com sucesso!"
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
Postado : 25/07/2017 6:07 am