Exmos
No formulário continuo tenho um botão com este código que envia o ID para o formulário editar.
_______________________//________________________________________
'No formulário Editar, como tenho o ID preenchido, vai carregar os dados relativos a esse ID (está desvinculado)
_________________//______________________
Até aqui não tenho problemas, mas o problema acontece quando quero editar o valor.
Ele edita sempre no cli_id = 1. Mas no código que apresento de seguida existe um erro que não consigo detectar.
Onde está o meu erro no código? O que me falta para ele assumir a localização do ID correto?
Sempre que faço alterações ele assume sempre a alteração na primeira linha da tabela. Não faz sentido.
Onde estou a errar?
No formulário continuo tenho um botão com este código que envia o ID para o formulário editar.
- Código:
Private Sub Comando18_Click()
'Abrir o formulário e assumir o ID do formulário continuo.
DoCmd.OpenForm "Editar"
Forms!Editar!TxtCod = Me.cli_id
End Sub
_______________________//________________________________________
'No formulário Editar, como tenho o ID preenchido, vai carregar os dados relativos a esse ID (está desvinculado)
- Código:
Private Sub Form_Load()
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "select cli_id, cli_nome, cli_cpf, cli_telefone, cli_email, cli_inativo, cli_data_cadastro, cli_apagado from " _
& "tbl_clientes where cli_id=" & Forms!Frm_C_Movimentos!cli_id
Set rs = CurrentDb.OpenRecordset(strSQL, , 4)
'Este primeiro campo é assumido pelo envio pelo formuário continuo.
'Me.Idola = rs!cli_id
Me.TxtNome = rs!cli_nome
Me.TxtCPF = rs!cli_cpf
Me.TxtTel = rs!cli_telefone
Me.TxtEmail = rs!cli_email
Me.SlcInativo = rs!cli_inativo
Me.TxtDataCad = rs!cli_data_cadastro
Me.Slc_erase = rs!cli_apagado
rs.Close
Set rs = Nothing
End Sub
_________________//______________________
Até aqui não tenho problemas, mas o problema acontece quando quero editar o valor.
Ele edita sempre no cli_id = 1. Mas no código que apresento de seguida existe um erro que não consigo detectar.
- Código:
Private Sub Bt_salvar_Click()
Dim rs As DAO.Recordset
'indicar a tabela onde vai gravar
Set rs = CurrentDb.OpenRecordset("tbl_clientes")
'Aqui abro o recordset em modo editar
rs.Edit
'este permite que o formulário recebe o ID atribuído automaticamente pela base de dados após a edição/gravação.
Me.TxtCod = rs!cli_id
rs!cli_nome = Me.TxtNome
rs!cli_cpf = Me.TxtCPF
rs!cli_telefone = Me.TxtTel
rs!cli_email = Me.TxtEmail
rs!cli_inativo = Me.SlcInativo
rs!cli_data_cadastro = Me.TxtDataCad
rs!cli_apagado = Me.Slc_erase
rs.Update
rs.Close
Set rs = Nothing
MsgBox "Alterado com sucesso", vbInformation, "Informação"
End Sub
Onde está o meu erro no código? O que me falta para ele assumir a localização do ID correto?
Sempre que faço alterações ele assume sempre a alteração na primeira linha da tabela. Não faz sentido.
Onde estou a errar?