MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


4 participantes

    [Resolvido]Carregar registro em formulário desvinculado

    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 27/6/2019, 12:04

    Boas,

    Estou passando por um problema, tenho certeza que estou à fazer algo errado ou esquecendo alguma coisa. Já tentei tudo o que encontrei no fórum e não resolveu.

    Tenho um formulário "Orcamento" que possui um subformulario tipo datasheet, onde preencho vários itens e em cada item no campo "hora_total_prod" ao clicar abre um formulário desvinculado ("Horas_orcadas") para inserir as horas por setor.

    É neste formulário que estou com dificuldade, quando existe registro na tabela "DB_horas_orcadas" o formulário não carrega a informação e se preencho novamente e clico em salvar, ele atualiza os dados no registro correto.

    Coloco a parte do banco de dados para vossa ajuda.
    Anexos
    [Resolvido]Carregar registro em formulário desvinculado Attachmentorcamento.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (158 Kb) Baixado 16 vez(es)
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2741
    Registrado : 23/01/2018

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  crysostomo 30/6/2019, 22:14

    Amigo, boa noite.
    Para se respondido com rapidez, anexe somente as partes que precisa ser resolvida, assim nós conseguiremos ver e atuar mais rápido.
    pelo que mostra no título e seu texto, basta arrastar seu horas_orcadas em um formulário e colocar para atualizar no formulário onde ele está
    Código:
    me.horas_orcadas.requery
    me.refresh


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 1/7/2019, 09:20

    Bom dia!

    A parte que preciso de ajuda está no banco, se colocar menos que isso irá gerar muitos erros e não poderá ser testado.

    Vou tentar explicar novamente, espero conseguir transparecer.

    O formulário [Orcamento], possui um subformulário [DB_Sub_orcamento_subform],
    ao clicar no campo [horas_total_prod] do subform é aberto o formulário [horas_total_orcamento] para preenchimento das horas por departamento de trabalho,
    esse formulário soma as horas, e ao clicar em salvar ele salva o registro na tabela "DB_horas_orcadas" e cópia o registro para o campo no subform.

    ***Agora o problema.***

    Quando vou modificar ou consultar o orçamento, quando abro o formulário [Horas_Total_Orcamento] ele não carrega o registro da horas relacionado ao orçamento.
    Mas se eu preencho os campos e clico em salvar ele modifica o o registro correto na tabela.

    O formulário [Horas_Total_Orcamento] é desvinculado.

    Cumprimentos,

    Bruno Nunes
    Julio Lustosa
    Julio Lustosa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 23/02/2011

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  Julio Lustosa 1/7/2019, 20:13

    Bruno, boa tarde!

    Fiz o que você pediu. Deletei alguns de seus códigos e apliquei a minha configuração.

    1º No campo hr_total_prod, apaguei a macro que você criou no evento Ao Clicar e criei um procedimento usando este evento:

    Código:

    Private Sub hr_total_prod_Click()

    Dim rs As DAO.Recordset

    DoCmd.OpenForm "Horas_total_orcamento", acNormal

    If CurrentProject.AllForms("horas_total_orcamento").IsLoaded Then
        'carrega o orcamento do frm principal com o id do registro na tabela DB_Sub_orcamento
        Forms!Horas_Total_Orcamento!idDbSubOrc = Me.id
        'Carrega o número do orçamento do subformulário.
        Forms!Horas_Total_Orcamento!numero_orcamento = Me.Parent.Num_Orc
        'carrega a seg de orcamento do sub frm
        Forms!Horas_Total_Orcamento!Seq_orcamento = Me.Seq_orcamento
        'carrega o numero do orçamento + sequência
        Forms!Horas_Total_Orcamento!numero_orcamento_seq = Me.Num_orc_seq
        
        Set rs = CurrentDb.OpenRecordset("SELECT * FROM DB_horas_orcadas WHERE Num_Orc =" & Me.Parent.Num_Orc, dbOpenSnapshot)
        
        'Aqui verifico se existe registro na tabela DB_horas_orcadas
        'com o número de orçamento informado no form principal
        If rs.RecordCount > 0 Then
            'Existindo o registro, carrego os campos do formulário Horas Total Orçamento
            'com os valores do registro encontrado.
            With Forms!Horas_Total_Orcamento
                !horas_rececao = rs!hr_rececao
                !horas_mascaramento = rs!hr_mascaramento
                !horas_textura = rs!hr_textura
                !horas_acido = rs!hr_acido
                !horas_foscagem = rs!hr_foscagem
                !horas_emb = rs!hr_embalagem
                !horas_polimento = rs!hr_polimento
                !horas_bancada = rs!hr_bancada
                !horas_total = rs!horas_totais
            End With
        End If
        'Fecho e limpo a variável rs do recordset.
        rs.Close: Set rs = Nothing
    End If

    End Sub

    2º Apaguei todos os eventos de formulários que você criou, criei o campo idDbSubOrc que receberá o valor do identificador da tabela DB_Sub_Orcamento e modifiquei os códigos dos botões salvar e fechar.

    [Resolvido]Carregar registro em formulário desvinculado Img210

    Código:

    Private Sub btn_salvar_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs = db.OpenRecordset("DB_horas_orcadas", dbOpenTable)

    rs.Index = "num_orc"
    rs.Seek "=", (Me.numero_orcamento)

    If Not rs.NoMatch Then
        rs.Edit
        Else
            rs.AddNew
    End If

    rs!Num_Orc = Me!numero_orcamento
    rs!seq_orc = Me!Seq_orcamento
    rs!num_orcamento_seq = Me!numero_orcamento_seq
    rs!hr_rececao = Me!horas_rececao
    rs!hr_mascaramento = Me!horas_mascaramento
    rs!hr_textura = Me!horas_textura
    rs!hr_acido = Me!horas_acido
    rs!hr_foscagem = Me!horas_foscagem
    rs!hr_embalagem = Me!horas_emb
    rs!hr_polimento = Me!horas_polimento
    rs!hr_bancada = Me!horas_bancada
    rs!horas_totais = Me!horas_total
    rs.Update

    rs.Close: Set rs = Nothing

    db.Execute "UPDATE DB_SUB_orcamento SET hr_total_prod = " & Me.horas_total & " WHERE id = " & Me.idDbSubOrc & ";"

    If db.RecordsAffected > 0 Then
        MsgBox "Total de horas atualizado na tabela DB_Sub_orcamento", vbInformation
    End If

    db.Close: Set db = Nothing

    Forms!orcamento!Sub_orcamento.Requery

    DoCmd.Close , "Horas_Total_Orcamento", acSaveNo

    End Sub



    Faça o teste e nos comunique se deu algo errado.

    Abraços.
    Anexos
    [Resolvido]Carregar registro em formulário desvinculado AttachmentDatabase16.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (347 Kb) Baixado 18 vez(es)
    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 2/7/2019, 09:53

    Julio, bom dia!

    Exatamente o que precisava, perfeito!

    Muito obrigado!!

    A única coisa foi a linha que faz o Requery no botão salvar, gerou erro, mas testei sem ela, funcionou perfeitamente!

    Coloco como resolvido o tópico!

    E digo também que este ensinamento resolveu outros problemas que estava enfrentando.

    Agradeço mais uma vez a sua ajuda e também à todos que mantém esse fórum em funcionamento.

    Cumprimentos,

    Bruno Nunes.
    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 2/7/2019, 15:12

    Júlio, boa tarde!

    Em resposta, eu fiz o teste e achei que seria fácil de resolver um problema. Mas definitivamente não está fácil.

    Quando vou gerar uma segunda linha de orçamento o formulário "Horas_total_orcamento" abre com os dados da linha anterior. Ele deveria abrir em branco.

    Testei colocar o campo "idDBSubOrc"

    'rs.Index = "idDbSubOrc"
    'rs.Seek "=", (Me.idDbSubOrc)



    'If Not rs.NoMatch Then
    ' rs.Edit
    ' Else
    ' rs.AddNew

    Só que o Access gera um erro dizendo que o "id"DbSubOrc" não é um número index válido.
    Creio que é este o caminho, mas não estou conseguindo fazer.

    Conto com sua ajuda ou de outro mestre disponível no fórum.

    Cumprimentos,

    Bruno Nunes

    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1416
    Registrado : 07/12/2011

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  tauron 2/7/2019, 17:34

    Tente indicar os campos assim

    rs("seucamponatabela")=me.seucamponoformulario

    rs("index")=me.idDBSubOrc
    rs("seek") = me.idDBSubOrc
    Julio Lustosa
    Julio Lustosa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 23/02/2011

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  Julio Lustosa 3/7/2019, 00:02

    Bruno, boa noite!

    Isto está ocorrendo porque o procedimento que carrega os dados no formulário de Horas Total Orçamento pega o primeiro registro que ele filtra usando como condição o número do orçamento.

    Como na tabela Db_horas_orcadas você fez três registros usando o número de orçamento 2, então ele carrega no recordset estes 3 registros mas só irá imprimir no formulário somente o primeiro.

    O certo seria usar o id do registro que está na tabela Db_Sub_orcamento (que é de onde você seleciona o registro para carrega o form desvinculado), mas este id não é cadastrado na tabela Db_horas_orcadas.

    Então, para solucionar este problemas, criei na tabela Db_horas_orcadas um campo chamado idSubOrcamento. Este campo será relacionado à tabela Db_Sub_orcamento. Quando você selecionar o registro, seja novo ou para ser editado, ele vai carregar o formulário com os dados corretos.

    No formulário desvinculado, modifico novamente o botão Salvar para que consiga salvar o id na tabela Db_hora_orcada.

    PS.: No sub formulário, quando o registro for novo, ao clicar no campo hr_total_prod ele irá atualizar o subformulário para que ele salve o novo id para que no formulário desvinculado, o procedimento do botão Salvar consiga salvar o id na tabela Db_hora_orcada. Caso contrário ele gera um erro e/ou pode acabar sobrescrevendo um registro diferente.

    Espero ter ajudado.
    Anexos
    [Resolvido]Carregar registro em formulário desvinculado AttachmentDatabase16.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (174 Kb) Baixado 4 vez(es)
    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 3/7/2019, 10:27

    Obrigado, Júlio e Tauron!!

    Júlio,

    Era isso mesmo que tentei fazer, mas sem sucesso. Falta-me conhecimentos que vou adquirindo com a ajuda de vocês.

    No entanto, quando faço um novo orçamento, gera um erro na requery do botão salvar do form "Horas_total_orcamento", dizendo que o requery não pode ser aplicado, devido o registro não ter salvo antes.

    Então para registro eu corrigi este erro, salvando o registro antes.

    Como! No evento click do campo "Horas_total" do sub form, salvo o registro. Com 'Docmd.runcommand acCmdSave'


    Coloco em anexo o arquivo corrigido caso, alguém necessite no futuro.

    Agradeço novamente a ajuda e ensinamentos.

    Sem este fórum e as pessoas que nele estão, eu não teria chegado até este momento do sistema.

    Cumprimentos e até a próxima.

    Bruno Nunes
    Anexos
    [Resolvido]Carregar registro em formulário desvinculado AttachmentDatabase163.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (271 Kb) Baixado 13 vez(es)
    avatar
    brunoluizmaia
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  brunoluizmaia 3/7/2019, 10:43

    Esqueci o resolvido! lol!

    Conteúdo patrocinado


    [Resolvido]Carregar registro em formulário desvinculado Empty Re: [Resolvido]Carregar registro em formulário desvinculado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 08:48