Boa tarde pessoal,
Tentei de todas as formas, mas não obtive sucesso.
Possuo 2 tabelas com as fichas técnicas dos produtos (tbl_ficha tecnica_master e tbl_ficha tecnica_detalhes).
Minha necessidade é a replicação de um registro, atualizando as 2 tabelas.
A tabela master está sendo atualizada adequadamente. Já a detalhes é exibido o erro:
O erro está localizado em:
Obs: O tipo de dados do campo Foto 1 a foto 6 da tabela principal é anexo. Esse item também não consegui duplicar.
MUITO OBRIGADO
Grande abraço
Segue o código:
Private Sub btn_duplicar_Click()
If Not IsNull(Me!cod_FT_master) Then
If MsgBox("Confirma a duplicação do registro?", vbQuestion + vbYesNo) = vbYes Then
Dim db As DAO.Database
Dim rs As DAO.Recordset
'1 cria uma nova numeração
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_ficha tecnica_master")
'Depois adiciona os dados a tabela
rs.AddNew
rs!cod_FT_master = DMax("cod_FT_master", "tbl_ficha tecnica_master") + 1
rs!cod_produto_FT_master = cbo_produto
rs!ficha_tecnica_data = cxt_ficha_tecnica_data
rs!ficha_tecnica_ID_func = Cbo_ID_func
rs!rendimento_ficha = cxt_rendimento_ficha
rs!unidade_rendimento = cxt_unidR
rs!descritivo = cxt_descritivo & " [COPIA]"
rs!modo_fazer = cxt_processo
'rs!foto1 = ft_1
'rs!foto2 = ft2
'rs!foto3 = ft3
'rs!foto4 = ft4
'rs!foto5 = ft5
'rs!foto6 = ft6
rs!cod_usuario = Cxt_cod_user
rs!cod_empresa = cxt_Cod_empresa
rs!dt_cad = Date
rs!dt_edicao_cad = Date
rs!Var_controle1 = cbo_var1
rs!par_var_controle1 = cx_par_var1
rs!Var_controle2 = cbo_vr2
rs!par_var_controle2 = cx_par_var2
rs!Var_controle3 = cbo_vr3
rs!par_var_controle3 = cx_par_var3
rs!prazo_validade = cx_prazoV
rs!obs_FT_Master = cxtx_obsFT
rs!index_proc_compra = cxt_index_proc_comp
'rs!Add_tb_processado = ""
rs.Update
DoCmd.RunCommand acCmdSaveRecord 'Salvo o Registro antes de começar a selecionar os dados
'***************************************
'SUBFORM'
'usando access Avelino Sampaio
Dim rsP As DAO.Recordset
Dim tbl As DAO.Recordset
'Abre a tabela que receberá os dados
Set tbl = CurrentDb.OpenRecordset("tbl_ficha tecnica_detalhes")
'carrega os dados do subformulário
Set rsP = SubFrm_CadastroFichaTecnicaitens.Form.RecordsetClone
SubFrm_CadastroFichaTecnicaitens.Enabled = True
'Percorre os registros do subformulário um a um
'rsP.MoveFirst 'Informo para comecar do inicio
Do While Not rsP.EOF
'Copia os dados do subformulário para a tabela
tbl.AddNew
tbl![cod_FT] = DMax("cod_FT_master", "tbl_ficha tecnica_master")
tbl!material_ID_filho = rsP!cb_material_ID_filho
tbl!material_qtdLiq = cxt_material_qtdLiq
tbl!material_qtdbruta = cxt_material_qtdbruta
tbl!material_fc = 1
tbl!material_fatorC_T = cxt_material_fatorC_T
tbl!material_estado_filho = cxt_estado
tbl.Update
'vai para o próximo registro do subformulário
rsP.MoveNext
Loop
rs.Close
tbl.Close
rsP.Close
Set tbl = Nothing
Set rsP = Nothing
Set db = Nothing
MsgBox "Dados copiados...", vbInformation, "FT"
'*******************************************
'DoCmd.RunCommand acCmdSaveRecord 'Salvo o Registro antes de começar a selecionar os dados
Me.Form.Requery
DoCmd.GoToRecord , , acLast
End If
End If
End Sub
Tentei de todas as formas, mas não obtive sucesso.
Possuo 2 tabelas com as fichas técnicas dos produtos (tbl_ficha tecnica_master e tbl_ficha tecnica_detalhes).
Minha necessidade é a replicação de um registro, atualizando as 2 tabelas.
A tabela master está sendo atualizada adequadamente. Já a detalhes é exibido o erro:
O erro está localizado em:
Obs: O tipo de dados do campo Foto 1 a foto 6 da tabela principal é anexo. Esse item também não consegui duplicar.
MUITO OBRIGADO
Grande abraço
Segue o código:
Private Sub btn_duplicar_Click()
If Not IsNull(Me!cod_FT_master) Then
If MsgBox("Confirma a duplicação do registro?", vbQuestion + vbYesNo) = vbYes Then
Dim db As DAO.Database
Dim rs As DAO.Recordset
'1 cria uma nova numeração
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_ficha tecnica_master")
'Depois adiciona os dados a tabela
rs.AddNew
rs!cod_FT_master = DMax("cod_FT_master", "tbl_ficha tecnica_master") + 1
rs!cod_produto_FT_master = cbo_produto
rs!ficha_tecnica_data = cxt_ficha_tecnica_data
rs!ficha_tecnica_ID_func = Cbo_ID_func
rs!rendimento_ficha = cxt_rendimento_ficha
rs!unidade_rendimento = cxt_unidR
rs!descritivo = cxt_descritivo & " [COPIA]"
rs!modo_fazer = cxt_processo
'rs!foto1 = ft_1
'rs!foto2 = ft2
'rs!foto3 = ft3
'rs!foto4 = ft4
'rs!foto5 = ft5
'rs!foto6 = ft6
rs!cod_usuario = Cxt_cod_user
rs!cod_empresa = cxt_Cod_empresa
rs!dt_cad = Date
rs!dt_edicao_cad = Date
rs!Var_controle1 = cbo_var1
rs!par_var_controle1 = cx_par_var1
rs!Var_controle2 = cbo_vr2
rs!par_var_controle2 = cx_par_var2
rs!Var_controle3 = cbo_vr3
rs!par_var_controle3 = cx_par_var3
rs!prazo_validade = cx_prazoV
rs!obs_FT_Master = cxtx_obsFT
rs!index_proc_compra = cxt_index_proc_comp
'rs!Add_tb_processado = ""
rs.Update
DoCmd.RunCommand acCmdSaveRecord 'Salvo o Registro antes de começar a selecionar os dados
'***************************************
'SUBFORM'
'usando access Avelino Sampaio
Dim rsP As DAO.Recordset
Dim tbl As DAO.Recordset
'Abre a tabela que receberá os dados
Set tbl = CurrentDb.OpenRecordset("tbl_ficha tecnica_detalhes")
'carrega os dados do subformulário
Set rsP = SubFrm_CadastroFichaTecnicaitens.Form.RecordsetClone
SubFrm_CadastroFichaTecnicaitens.Enabled = True
'Percorre os registros do subformulário um a um
'rsP.MoveFirst 'Informo para comecar do inicio
Do While Not rsP.EOF
'Copia os dados do subformulário para a tabela
tbl.AddNew
tbl![cod_FT] = DMax("cod_FT_master", "tbl_ficha tecnica_master")
tbl!material_ID_filho = rsP!cb_material_ID_filho
tbl!material_qtdLiq = cxt_material_qtdLiq
tbl!material_qtdbruta = cxt_material_qtdbruta
tbl!material_fc = 1
tbl!material_fatorC_T = cxt_material_fatorC_T
tbl!material_estado_filho = cxt_estado
tbl.Update
'vai para o próximo registro do subformulário
rsP.MoveNext
Loop
rs.Close
tbl.Close
rsP.Close
Set tbl = Nothing
Set rsP = Nothing
Set db = Nothing
MsgBox "Dados copiados...", vbInformation, "FT"
'*******************************************
'DoCmd.RunCommand acCmdSaveRecord 'Salvo o Registro antes de começar a selecionar os dados
Me.Form.Requery
DoCmd.GoToRecord , , acLast
End If
End If
End Sub