MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Baixar Valores em Sub-Formulários

    Compartilhe

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 25/2/2018, 15:00

    Bom dia Professores!!!

    Tenho uma tabela aonde tenho os fornecedores da empresa, e outra tabela tem as despesas com os campos Data_Venc, Valor_Parcela, Data_Pgto, Valor_pago, eu campo selecionável que o Sel_baixar (sim/não).
    Enfim criei uma consulta de todas as despesas em aberto por fornecedor, e no formulário principal e encontro o Fornecedor e no Sub-formulário aonde tem a consulta em aberto sai todas as despesas daquele fornecedor em aberto, o que necessito.
    Ao invés de baixar despesa por despesa no sub-Formulário, quero clicar em um botão no formulário principal e o mesmo aparecer uma msgBox ("Deseja fazer uma baixa consolidada?"), e ao clicar sim no sub-formulário todas as despesas seja baixada no Sel_Baixar e no Valor_Pago seja o mesmo do Valor_parcela e a Data_Pgto seja o mesmo de ()Hoje.
    Alguém que puder me ajudar, pois não sei como resolver tal problema...
    Obrigado....

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 25/2/2018, 17:40

    Pedro

    Se o relacionamento da tabela fornecedores está de 1 para muitos com a tabela despesas, nem precisa da msgbox().

    No modo designer do formulário principal, quando se clica no subformulário uma vez, o que fica selecionado é o retângulo em laranja do subformulário.

    -Nas folha de propriedades desse retângulo, veja se a propriedade Vincular campos mestres e o de baixo, campos filhos,  estão com o

    mesmo código de fornecedores.

     É esse campo de deve ser o responsável do relacionamento entre as duas tabelas. fornecedores e despesas.

    - Coloque a consulta que fez na propriedade fonte de registro do subformulário.

    Se fez como foi dito, sempre que mudar de fornecedor, a despesas mudarão também de acordo com o fornecedor.

    [ ]'s

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 25/2/2018, 21:16

    Boa tarde Professor Noobezinho...

    Primeiramente obrigado em tentar me ajudar...
    Creio que eu não soube me expressar, pois veja a consulta ela é sub-formulário, e o formulário principal e de fornecedores, e os campos metres são fornecedores, e toda vez que mudo de fornecedor ele encontra todas as despesas que estão em aberto desse fornecedor.
    Porém o meu questionamento é o seguinte, eu preciso criar um botão no formulário principal ao clicar baixar todas as despesas em aberto no sub-formulário, por isso eu coloquei os campos existentes no sub, que são:
    Sel_baixar tem que ficar = Verdadeiro
    Data_Pgto tem que ficar = Data de Hoje()
    Valor_Pago tem que ficar = Valor_Parcela
    Eu tentei criar o seguinte codigo:

    Dim resp

    resp = MsgBox("Deseja Relizar uma Baixa Consolidada?", vbQuestion + vbYesNo, "Despesas")

    If resp = vbYes Then
    Me.dt_pgto = Me.dt_vencimento
    Me.valor_pago = Me.valor_parcela
    Me.sel_baixar = Verdadeiro

    Me.Forms_Baixar_fornecedor_Sub.Requery

    Porém não deu certo...

    Obrigado.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 25/2/2018, 21:52

    Se entendi, já tem uma consulta como fonte de registros do subformulário

    Então, crie uma outra consulta com os critérios de cada coluna, na grade da consulta:

    Sel_baixar= Verdadeiro
    Data_Pgto = date()
    Valor_Pago  = Formularios!NomedoFormularioPrincipal.Valor_Parcela

    No botão de comando:
    Código:

    if  msgBox ("Deseja fazer uma baixa consolidada?",vbquestion+vbyesno)= vbyes then
      Me.NomeDoSubformulario.Form.RecordSouce = "Copie e cole aqui a frase SQL ou o nome da consulta que criou"
      me.NomeDoSubformulario.Form.Requey
    endif

    Apos obter a resposta = sim, ele irá definir como fonte de registro do subformulário, a consulta que criou.
    Então fará uma reconsulta para retornar os dados desejado.

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 26/2/2018, 11:01

    Bom dia Professor!

    Fiz conforme o que me indicou e deu o seguinte erro:

    Erro de copilação: Método ou membro de dados não encontrado

    Ele seleciona : Me.Forms_baixar_fornecedor_sub.Recordsouce = "Cs_Resposta_Baixa"

    E a seleção fica em cima do .Recordsouce

    Aguardo o vosso retorno de como proceder...

    Obrigado.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 26/2/2018, 12:24

    Pedro

    Quando quero me referir ao formulário em que estou trabalhando, ao invés de colocar:

    Forms!NomeDoFormulário, escrevo simplesmente:  Me.

    Quando me refiro a um outro formulário, escrevo:

    Forms!NomeDoFormulário

    Agora veja:

    Fiz a sintaxe para você colocar somente o nome do formulário :

    Me.NomeDoSubformulario.Form.RecordSouce

    Onde você não entendeu que era para substituir  onde escrevi "NomeDoSubformulario" pelo o nome do formulário.

    Se o nome do meu subformulário for : subfrm_Clientes, vou escrever,

    Me.subfrm_Clientes.Form.RecordSouce

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 26/2/2018, 12:44

    Professor!!!

    Agora eu entendi referente a questão de trabalhar dentro do formulário e quando for um Sub.
    Bom quando clico no botão agora ele faz a pergunta do MsgBox...
    Porém creio que fiz a consulta errada, pois o erro mudou, está dando um erro: 2465 - Erro de definição de aplicativo ou definição de objeto...
    Quando mando depurar ele seleciona:

    Me.Forms_Baixar_fornecedor_Sub.Form.RecordSouce = "Cs_Resposta_Baixa"

    Veja professor para tentar lhe explicar o que fiz, crie uma consulta com o nome Cs_Resposta_Baixa e não selecionei nenhuma tabela ou consulta, coloquei os seguinte campos:

    Sel_Baixar: Verdadeiro
    Dt_pgto: Data()
    Valor_pago: [Formularios]![forms_baixar_fornecedor_sub]![Valor_Parcela]

    E depois informei no botão o código acima que o amigo me passou.
    O erro está nessa consulta??

    Obrigado



    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 26/2/2018, 13:21

    Me diga
    [forms_baixar_fornecedor_sub]

    Esse é o nome do teu formulário?

    Como disse na mensagem anterior, a palavra Forms é reservada do Access, com já demonstrei também

    Forms!nomeformulário
    Forms()

    Ou seja,não se deve usar em nomes de formulários.

    Utilize:

    frm_baixar_fornecedor_sub
    subfrm_baixar_fornecedor

    Corrija isso.

    Acredito que ainda não aprendeu direito sobre referência a formulários

    Sugiro que aprenda na ajuda do Access ou na internet

    A referência ao formulário na linha abaixo está errada.

    Valor_pago: [Formularios]![forms_baixar_fornecedor_sub]![Valor_Parcela]

    Não vou corrigir, senão não irá aprender.

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 26/2/2018, 13:57

    Professor!!!!

    Agora deu nó na cabeça e perdoe me a ignorância referente ao assunto...
    Vou tentar lhe explicar detalhadamente o que fiz e veja como posso resolver, entenda não estou mesmo atrás do código pronto, só não estou entendendo aonde estou errando.
    Tenho professor uma tbl_Fornecedor, criei uma caixa de combinação que pesquisa o nome do fornecedor e encontra os dados do fornecedor esse é o formulário principal aonde coloquei o nome de Forms_Baixar_Fornecedor... Agora depois da sua explicação vou corrigir todos os meus formulários, pois sempre cometo o erro de colocar no inicio dos formulário a nomeclatura Forms, e vou substituir para Frm...
    Bom professor fiz uma consulta que vem de uma outra tabela de lançamento de despesas aonde aparece os dados da depesas em aberto por fornecedor, ou seja quando eu busco no nome do fornecedor no formulário principal aparece no sub formulário todas as despesas em aberto e coloquei o nome já renomeado de Frm_Baixar_fornecedor_Sub, ligado nos campos mestres o campo Fornecedor.
    Como o sr me passou criei uma consulta chamada Cs_Resposta_Baixa, conforme lhe expliquei acima, porém não entendi mesmo o código a ser colocado no campo Valor_Pago, tentei da seguinte forma:

    Valor_pago: [Forms]![frm_baixar_fornecedor_sub]![Valor_Parcela]
    E deu o mesmo erro acima....
    Sinceramente não sei aonde estou errando, já busquei outras referência na internet e não encontrei, por favor me ajude, pois como lhe disse não estou encontrando o erro...

    Obrigado.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 26/2/2018, 14:23

    Antes de tudo:

    Pare de me chamar de professor, sou alguém igual a você, só aprendi antes de você, logo, logo, saberá tanto quanto eu,  ou mais! Wink

    E é exatamente por isso que coloquei esse nike: Noobezinho

    Pode me chamar assim que não ofende Razz

    Como  é um critério de Valor, acredito que nem precise colocar, pois a consulta ja deve retornar com o valor correto.

    Acredito que somente com esses dois critérios seja suficiente;

    Sel_Baixar: Verdadeiro
    Dt_pgto: Data()

    Teste e veja se é isso que pretende.

    obs.: Estava confundindo os tópicos, por isso , li todo o tópico novamente. Embarassed

    Aguardo...

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 26/2/2018, 17:18

    Boa tarde Noobezinho

    Bom me desculpe a formalidade, é a força do hábito...
    Amigo fiz um bd de teste, para que você vendo possa tentar entender o que fiz...
    Por gentileza abra o Forms_Baixar_Fornecedor, clique no botão alterar e na caixa de combinação digite por favor:
    Antonio Roberto Batista - Posto Bentivi
    Veja que aparecerá 28 despesas em aberto, no formulário principal coloquei um botão para fazer a baixa consolidada, com os códigos que você me orientou veja aonde está o erro e me de uma luz, pois já tentei de tudo e sempre dá errado.
    Obrigado...
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 795
    Registrado : 01/03/2014

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Celso Roberto em 26/2/2018, 18:35

    Olá..

    cole este código no botão e faça teste
    Mas antes tire o agrupamento da consulta Cs_Baixa_fornecedor
    Não sei o motivo do agrupamento, mas para por esta como origem do formulario tem que estar sem agrupamento pois ela fica inconsistente para qual quer alteração.

    Código:
    Private Sub btn_baixar_Click()
    Dim rs As Recordset
       
        Set rs = Me.Forms_Baixar_fornecedor_Sub.Form.Recordset
     
            rs.MoveFirst
        Do While Not rs.EOF
            With rs
            .Edit
                If Me.Forms_Baixar_fornecedor_Sub!Sel_Baixar = False Then
                    Me.Forms_Baixar_fornecedor_Sub!Sel_Baixar = True
                    Me.Forms_Baixar_fornecedor_Sub!Dt_pgto = Date
                    Me.Forms_Baixar_fornecedor_Sub!Valor_pago = Me.Forms_Baixar_fornecedor_Sub!valor_parcela
           
                Else
                DoCmd.CancelEvent
               
                End If
                   
            .Update
               
            .MoveNext
            End With
            Loop
            rs.Close
      Set rs = Nothing
                    'Me.Forms_Baixar_fornecedor_Sub.Form.Refresh
                    Me.Forms_Baixar_fornecedor_Sub.Requery
    End Sub


    Aguardamos retorno

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Noobezinho em 26/2/2018, 19:56

    Fiz as modificações conforme pediu

    Só precisa testar.
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 795
    Registrado : 01/03/2014

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Celso Roberto em 9/3/2018, 16:08

    Olá..

    Conseguiu resolver esta sua solicitação de ajuda?

    Os membros do Fórum merece o seu retorno

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

    Bessa_SP
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 150
    Registrado : 07/11/2013

    Baixar Valores em Sub-Formulários

    Mensagem  Bessa_SP em 9/3/2018, 18:19

    Boa tarde Sr. Celso Roberto

    Desculpe a demora...

    Amigo assim o código que você colocou deu certo ele baixou todas as despesas consolidadas de uma só vez.
    Vou colocar como resolvido, porém no caso do sistema acabou não resolvendo, pois eu não estava entendendo a real necessidade, acontece que nem sempre se baixa todas as despesas de um só vez, existe a baixa parcial, aonde seleciona-se as despesas que serão baixadas e gera-se um número de consolidação, para depois imprimir quais as despesas que foram baixadas nessa consolidação.
    Eu estou apanhando para resolver esse problema...

    Obrigado pela ajuda, já que aprendi mais um pouco sobre a infinidade que o Access nos proporciona...

    Abraços!!!
    avatar
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 795
    Registrado : 01/03/2014

    Re: [Resolvido]Baixar Valores em Sub-Formulários

    Mensagem  Celso Roberto em 9/3/2018, 20:08

    Olá..

    O Fórum agradece seu retorno

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

      Data/hora atual: 20/9/2018, 14:25