everton3x 30/1/2012, 22:51
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("NomeDaTabelaDeOrigem")
rs. FindFirst "Código=" & Me.Código
If rs.NoMatch Then
MsgBox "Não existe nenhum registro com esse código", vbCritical, "Erro"
Else
CurrentDb.Execute "INSERT INTO NomeDaTabelaDeDestino(Campo1, Campo2, Campo3) VALUES('" & rs!Campo1 & "', '" & rs!Campo2 & "', '" & rs!Campo3 & "')"
End If
rs.Close
Set rs = Nothing
Olá colegas.
Adaptei o código acima para o seguinte:
- Código:
Private Sub cod_teste_AfterUpdate()
Dim rs As Recordset, codigo As Integer
codigo = Me.cod_teste.Value
Set rs = CurrentDb.OpenRecordset("teste")
rs.FindFirst "cod = " & codigo
'MsgBox "cod = " & Me.cod_teste.Value
If rs.NoMatch Then
MsgBox "Nenhum registro encontrado"
Else
Me.nome.Value = rs!nome
Me.telefone.Value = rs!telefone
End If
rs.Close
Set rs = Nothing
End Sub
A minha ideia é, a partir da digitação do código da pessoa (campo cod da tabela teste) num campo acoplado, buscar as informações dos campos nome e telefone e inserir isso nos textbox nome e telfone (não acoplados) do formulário.
Porém, ocorre a seguinte mensagem, referente a linha
- Código:
rs.FindFirst "cod = " & codigo
Erro em tempo de execução '3251'
Operação não suportada para este tipo de objetoSe comento a referida linha, o código funciona, porém os dados apresentados são sempre os do primeiro registro da tabela.
Já procurei aqui e em outros lugares uma solução mas não encontrei.
Fico muito grato por qualquer ajuda.
Obs.: arquico do MSAccess 2007-2010
RESOLVIDO
Faltou colocar
dbOpenDynaset em
Set rs = CurrentDb.OpenRecordset("teste", - Código:
Set rs = CurrentDb.OpenRecordset("teste", dbOpenDynaset)
Vivendo e aprendendo.
Última edição por everton3x em 31/1/2012, 14:28, editado 1 vez(es) (Motivo da edição : Problema solucionado)