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


2 participantes

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    avatar
    NgLemos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 16
    Registrado : 22/08/2013

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  NgLemos 23/11/2013, 11:45

    Bom dia,

    Mas uma vez estou aqui a precisar da vossa ajuda, já olhei pelos tópicos da fórum e não consegui o que pretendo, passo a explicar:

    - Tenho uma BD em access 2010, nela tenho um formulário "Actividade" onde o custo unitário é calculado através do sub- Formulório "subForActividade" vinculado a este onde insiro os recursos de cada actividade, e corre tudo bem, em cada registro (formulário "Actividade") quando actualizo ou insiro novo recurso, faz o UPDATE  do custo unitário na tabela "orcActividade".

    Porém tenho um formulário "recActividade" onde posso escolher um recurso para inserir em varias actividades, para isso tenho o subformulário "subForRecurso" vinculado ao formulário onde tenho a lista das actividades e posso selecionar muitas actividades, para inserir o recurso e funciona!  No formulário tem um botão "btn_Recalcular".

    O que pretendo é que ao carregar botão "btn_Recalcular", actualiza todos os formulários e tabelas da db e mostre na lista do "subForRecurso" o novo custo de todas as actividades.  
    Já tentei com o requery, refresh e nada funcionou.

    Em resumo pretendo ter no meu formulário principal um botão que ao clicar recalcula/actualiza toda informação da BD.

    Desde já agradeço
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  criquio 23/11/2013, 12:17

    Você quer atualizar a lista de registros em todos os formulários e subformulários, é isso? Se for, acredito que funcione assim:

    Código:
    Dim nForm As Form, nSubForm As Control ' Criar variáveis para formulários e controles do formulário

    For Each nForm In Application.Forms ' Para cada formulário aberto...

        nForm.RecordSource = nForm.RecordSource ' ... aplicar a mesma origem de registros.
     
        For Each nSubForm In nForm.Controls ' Para cada controle do formulário...
            If nSubForm.ControlType = acSubform Then ' ... Se for um controle do tipo subformulário, então...
                nSubForm.SourceObject = nSubForm.SourceObject ' ... aplicar a mesma origem do objeto novamente.
            End If ' Fim
        Next ' Próximo controle do formulário atual.

    Next ' Próximo formulário aberto.
    Se tiver listboxes e comboboxes que queria que sejam atualizadas tambem, pode aplicar o Requery dentro do For... Each interno:

    Código:
        If nSubForm.ControlType = acListbox Or nSubForm.ControlType = acCombobox Then
            nSubForm.Requery
        End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    NgLemos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 16
    Registrado : 22/08/2013

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  NgLemos 23/11/2013, 16:14

    Grande mestre

    Agradeço desde já a sua ajuda, porém não está a funcionar!

    O Que pretendo é o seguinte: Para o usuário todos os formulários da BD estão fechado, e no formulário principal ao carregar no botão "Recalcular", actualiza todas as alterações feitas nos formulários e tabelas da BD.

    O código que postaste não está a fazer isto!

    Obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  criquio 23/11/2013, 22:51

    Está meio complicado entender. Se "Para o usuário todos os formulários da BD estão fechado", que alterações seriam essas feitas nos formulários e tabelas? Lembrando que os formulários estariam fechados? Poderia exemplificar?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    NgLemos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 16
    Registrado : 22/08/2013

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  NgLemos 24/11/2013, 15:28

    Boas

    Bom é o seguinte:
    Tenho um formulário "Actividade" onde insiro os recursos registro a registro, para obter o custo unitário de cada actividade, e no mesmo formulário tenho o botão gravar que actualiza o formulário e tabela, corre tudo bem.

    Porém tenho outro formulário principal onde o usuário pode seleccionar um recurso e também seleccionar uma ou mais actividade para inserir o recurso, e faz perfeitamente, nota que o formulário "Actividade" está fechado e apenas tenho o formulário principal aberto, mas acontece que para actualizar as actividades no formulário "Actividade" tenho que ir abrir o formulário e percorrer registro a registro e carregar no botão gravar para actualizar as actividades onde inseri os recursos a partir do formulário principal, e é isto que pretendo ultrapassar, para tal pretendo o seguinte:

    No formulário principal um botão que ao carregar actualiza os registros onde acabei de inserir o recurso selecionado. Como a alteração de custo de uma actividade implica alteração de valor em varias tabelas, pretendo que invés de actualizar só os formulário e tabelas onde inseri os recurso, faça uma actualizada de todas as tabelas e formulários da DB, pois assim garantia, sempre que o usuário carregasse neste botão teria os dados mais actualizados!

    Por exemplo se o custo total de todas as actividades valiam 25.000 ao carregar no "botão para actualizar" se o novo recurso inserido totalizar um valor de 1.500 no meu formulário principal aparece um total de 26.500. por sua vez na tabela onde tenho o consumo do recurso também aumenta o valor em 1.500 e assim por diante actualiza todas as tabelas e formulários.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  criquio 24/11/2013, 16:38

    Formulários, relatórios e consultas não se atualizam. Eles apenas exibem as atualizações que ocorrem nas tabelas. A princípio estou com a sensação de que talvez seja o caso de se alterar alguma coisa na estrutura do seu banco de dados, pois está me parecendo que precisa atualizar muitas tabelas ao mesmo tempo. Pior, que está armazenando cálculos nas tabelas, o que não é recomendável. Salvo raríssimas exceções, cálculos devem ser exibidos apenas na visualização dos dados em consultas, formulários e relatórios e não armazenados em tabelas. Detalhe a estrutura do seu banco para podermos ter uma melhor ideia sobre isso.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    NgLemos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 16
    Registrado : 22/08/2013

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  NgLemos 24/11/2013, 18:57

    Boa tarde,

    - "Eles apenas exibem as atualizações que ocorrem nas tabelas" - É exactamente isto que pretendo que actualiza todas as tabelas ser for possível, contudo já fica satisfeito se conseguisse actualizar a tabela orcActividade, conforme descrevo abaixo.

    Quanto aos cálculos talvez me fiz entender mal, não se trata de calculo na tabela mas sim aumento de quantidade de consumo do recurso na respectiva tabela. Conforme seu pedido passo a detalhe a minha DB.

    Formulário "forPrincipal"  tem a opção "Actividade" e "Recurso por Actividade"

    Na opção "actividade" abre o formulário "forActividade":
    O Formulário "forActividade" está vinculada a tabela orcActividade, nesta tabela tem o campo UnitárioActividade.
    No formulário "forActividade"   tem o subformulário vinculado "SubForActividadeDetalhe" e tem o campo "txt_CustoTotal " desvinculado onde  reflecte o total do custo no subformulário "SubForActividadeDetalhe".

    No SubForActividadeDetalhe carrega-se os recursos para obter o custo unitário da actividade.

    No formulário "forActividade" tem um botão gravar, que quando carrego actualiza na respectiva tabela orcActividade o campo "UnitarioActividade" = txt_CustoTotal " no formulário "forActividade". Até aqui funciona sem problema.


    Na opção "Recurso por Actividade" abre o formulário "forRecursoporActividade", nota que o formulário "forActividade" está fechado:
    No formulário "forRecursoporActividade" permite selecionar um recurso e inserir em muitas actividades e mais uma vez digo que está a funcionar, pois quando abro o formulário "forActividade" e navego nos registro onde inseri o recurso este aparece no subformulário "SubForActividadeDetalhe", porém o UnitarioActividade na tabela orcActividade só actualiza se carregar no botão gravar. E é isto que pretendo evitar pois assim perde-se a lógica de inserir de uma só vez um recurso em muitas actividades, se depois tenho que ir no formulário e navegar registro a registro para actualizar o campo UnitarioActividade na tabela orcActividade!

    Assim sendo no formulário "principal" pretendo ter um botão que ao carregar actualiza o campo UnitarioActividade na tabela orcActividade em todas as actividades  .

    Já tentei o código abaixo, para actualizar o campo UnitarioActividade na tabela orcActividade em todos os registros e dá erro (2450- O Microsoft access não consegue localizar o formulário 'forActividade' referenciado, e não consigo de entender:

    CurrentDb.Execute "UPDATE orcActividade set UnitarioActividade= " & [Forms]![forActividade].[txt_CustoTotal] & " WHERE [CodOrc] = " & [Forms]![forActividade].[CodOrc] & " and [CodActividade] = " & [Forms]![forActividade].[CodActividade] & ""

    Nota que o botão está no formulário "forPrincipal".
    avatar
    NgLemos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 16
    Registrado : 22/08/2013

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  NgLemos 27/11/2013, 10:20

    Mestre criquio, obrigado pela ajuda mas com adaptações de algumas soluções aqui do fórum resolvi da seguinte forma:

    No meu formulário principal quando carrego no botão actualizar:


    Abre o formulário que pretendo que actualiza na tabela vinculada registro a registro, e fica invisível.
    No formulário aberto e invisível no evento no cronometro tenho o seguinte código:

    Dim Contar As Integer

    Me.Refresh

    Contar = DCount("CodActividade", "orcActividade", "CodOrc = " & Me.CodOrc & "")

    If Me.txt_recalcula = 1 Then 'Verifica na abertura do formulário se é para recalcular/actualizar ou não

    For i = 1 To Contar

    On Error GoTo 1:

    Me.UnitarioActividade = Me.txt_CustoTotal ' Aqui actualiza o campo UnitarioActividade na respectiva tabela com o valor no campo txt_CustoTotal do formulário.
    Me.Form.Recordset.MoveNext
    Next

    1:
    If Err.Number = 3021 Then
    Me.Refresh
    MsgBox ("Operação concluída com sucesso")
    DoCmd.Close acForm, "forActividade"
    Else
    Exit Sub
    End If

    Else
    Exit Sub
    End If

    NO evento: intervalo tenho 1000

    Com está solução faz exactamente o que pretendo. Insiro recurso em muitas actividades no formulário e para fazer a actualização não necessito de abrir o formulário e navegar registro a registro.

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  criquio 27/11/2013, 15:04

    Grato pelo retorno. O fórum agradece.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD Empty Re: [Resolvido]Recalcular/Actualizar todos Formulários e Tabelas da BD

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 17:15