Boas, não seria mais fácil criares uma tabela em Access, de onde irias ler os valores que pretendes, e atualizar os campos mais facilmente, mesmo que acedidos por Excel?
Já há muito tempo que não uso isto, mas deixo-te aqui um exemplo que eu usava , possivelmente terás que atualizar o tipo de ligação (acho que já não é ADOBD), e no editor de Visual Basic tens de ir a tools, references e adicionares a referencia à versão de access que está na tua máquina, se pesquisares um bocado deverás encontrar exemplos melhores e mais atuais.
Dim cn As Object, rs As Object
DBFullName = "D:\OFICIOS\naomexer\Dados Autos.mdb"
On Error GoTo Erro
Dim comando As String
'procura o campo Nome na tabela NIF_Tabela que corresponde ao campo NIF, que foi inserido no campo niffiel do formulário
comando = "SELECT NOME FROM NIF_Tabela WHERE NIF = '" & UserForm1.niffiel.Text & "'"
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBFullName & ";"
Set rs = CreateObject("ADODB.Recordset")
'Set rs2 = CreateObject("ADODB.Recordset")
rs.Open comando, cn, , , adCmdText
nomefiel.Text = rs!nome
LetsContinue:
On Error Resume Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
On Error GoTo 0
Exit Sub
Erro:
' esta descrição do erro ia aparecer sempre que não houvesse morada
'MsgBox "Error Description :" & Err.Description & vbCrLf & _
"Error at line :" & Erl & vbCrLf & _
"Error Number :" & Err.Number
Resume LetsContinue
'update dos campos
Dim nif, nome, nif2, nome1 As String
nif = Me.novonif.Value
nif2 = Me.AlterarNif.Value
nome1 = Me.novonome.Value
comando = "UPDATE NIF_Tabela SET NIF='" & nif & "', NOME = '" & nome & "' WHERE NIF= '" & nif2 & "'"
Este código estava inserido no evento Click de um botão.
Para alterares valores na tabela é basicamente a mesma coisa, mas a instrução SQL tem que ser qualquer coisa como está no update dos campos.
A parte do update é um código à parte, igual ao primeiro só com as alterações que deixo no fim.
Esta é uma opção possível, no entanto deverão existir muitas mais, utilizando o código que tens.
Boa sorte.
↧