scandinavo 12/3/2024, 23:53
os dados do que voce quer mostrar no relatorio tem origem na tabela
estes dados são campos calculados no formulario, que somente é slavo na tabela se o calculo for feito atraves do VBA se não só sal visiveis no formulario
teria que ter um codigo no botão salvar para adicionar estes valores na tabela.
Substitua o codigo do botão btnGravarOs_Click() por este aqui, só tem a adição do codigo que faz o salvamento na tabela
On Error GoTo Err_btnGravarOs_Click 'Inicia tratamento de erros, caso ocorra algum envia ao rótulo de tratamento de erros.
If IsNull(Me.cliente) Then 'Condição para bloquear salvar sem o nome do cliente
DoCmd.CancelEvent
Me.cliente.SetFocus
MsgBox "É necessário informar o nome do cliente", vbCritical, "Atenção"
Else
''''''''''''''''''''''''''''''''''''''''''''''''codigo para slavar os dados na tabela
DoCmd.RunCommand acCmdSaveRecord 'salva o registro
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
'abre a tabela cadastro no registro especifico
Set rs = db.OpenRecordset("select * from emiss_Os where idOs = " & Me.idOs & "")
rs.Edit 'modo Edição
rs("valor_peca") = Me.valor_peca
rs("valor_servico") = Me.valor_servico
rs("desconto") = Me.desconto
' rs("vl_total") = Me.vl_total 'este campo ja é calculado na tabela então não pode ser editado
rs.Update
rs.Close
db.Close
''''''''''''''''''''''''''''''''''''''''''''''
Me.dataOs.enabled = False
Me.horaOs.enabled = False
Me.dataSaida.enabled = False
Me.cliente.enabled = False
Me.cpf.enabled = False
Me.telefone.enabled = False
Me.celular.enabled = False
Me.equipamento.enabled = False
Me.modelo.enabled = False
Me.marca.enabled = False
Me.acessorio.enabled = False
Me.num_serie.enabled = False
Me.defeito.enabled = False
Me.servico_exec.enabled = False
Me.obs.enabled = False
Me.tecnico.enabled = False
Me.status.enabled = False
Me.formapg.enabled = False
Me.valor_peca.enabled = False
Me.valor_servico.enabled = False
Me.desconto.enabled = False
Me.Refresh 'Atualiza as informações na tabela
MsgBox " O.S gravada com sucesso!", vbInformation, "confirmação"
End If
Exit_btnGravarOs_Click: 'Rótulo de saída
Exit Sub 'Sai da rotina
Err_btnGravarOs_Click: 'Rótulo de tratamento de erros
MsgBox Err.description 'Aqui ele mostra a mensagem ao usuário
Resume Exit_btnGravarOs_Click ' Reinicia rotina após o erro e envia para o rótulo de saída